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);
}