JavaのString配列の要素の削除一部

Abby44:

私は、文字列の配列で、ユーザからの入力をしたいです。それのいくつかの部分を削除し、別のテキスト領域ブロックでそれをプリントアウト。

例えば:

String配列で入力。

===========

氏:アレックス・シモンズ
さん:スーザン・ケント
夫人:J.ピーターソン

===========

私は、出力は次のようになりたいです。単一の行または要素の値の残り:ミスター:,ミス:,夫人を除去した後

===========
アレックスシモンズスーザン・ケントJ.ピーターソン

===========

ここで私が働いていたコードです。

private void jButton18ActionPerformed(java.awt.event.ActionEvent evt) {
        String[] names = jTextArea11.getText().split("\\n");


        List<String> myList = new ArrayList<>(Arrays.asList(names));


        myList.remove("Mr:");
        myList.remove("Miss:");
        myList.remove("Mrs:");

        names = myList.toArray(new String[0]);

        jTextArea12.setText(Arrays.toString(names));
}

上記のコードではありません、私のために動作しているようです。..

出力は次のとおりです。
[氏:アレックス・シモンズ、ミス:スーザン・ケント、夫人:J.ピーターソン]

「[]」で区切られた最後の括弧と「は、」私が考えていたものではありません。また、削除()は動作しているようだされていません。

Ousmane D .:

現在、次の3つのを実行する際removeの呼び出しを:

myList.remove("Mr:");
myList.remove("Miss:");
myList.remove("Mrs:");

あなたは、本質的にしようとしている「:、削除『氏』 『ミス:』と『夫人:』からmyList、彼らが存在する場合は、」何をしたいというが、これはあなたが望むものではないですから言わデータ削除」を要素の内部を myList

あなたは、ループの典型的な経てこれを実現することができますが、ちょうどあなたが後で結果を参加し、設定する必要があるとして、ここでは、ストリームを使用する方が便利かもしれませんjTextArea12それに。

このように、分割後、あなたが言った要件を達成するために、ストリームを使用することができます。

String result = Arrays.stream(names)
          .map(s -> s.replace("Mr:", "").replace("Miss:", "").replace("Mrs:", ""))
          .collect(Collectors.joining(" "));

jTextArea12.setText(result);

完全なコード:

private void jButton18ActionPerformed(java.awt.event.ActionEvent evt) {
     String[] names = jTextArea11.getText().split("\\n");

     String result = Arrays.stream(names)
              .map(s -> s.replace("Mr:", "")
                         .replace("Miss:", "").replace("Mrs:", ""))
              .collect(Collectors.joining(" "));

     jTextArea12.setText(result);
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=223537&siteId=1