これらの文字列で終わる単語を削除したい
hello_hi
sorry_hr
good_tt
_tt
で終わる単語を削除したい_hr
。どうやってするの?
is this is good way?
String word = word.replace("_hi", "");
したがって、次のような単一の文字列があります。
String str = "hello_hi sorry_hr good_tt";
次に、必要なものは、適用される次の 3 つのルールに要約されます。
1) _hi で終わる hello_hi を削除します。
2) _hr を削除し、単語を後ろに残します。この特定のケースでは、申し訳ありません
3) *_hi または *_hr 形式ではなく、*_tt であるため、good_tt を保持します。
すると、最後の文字列は「sorry good_tt」になります。
それをしましょう
String[] strings = str.split(" ");
ArrayList processed = new ArrayList();
for (String token : strings) {
if (token.endsWith("_hr")){ //rule 2
processed.add(token.replace("_hr", ""));
} else if (token.endsWith("_hi")) { //rule 1
continue;
} else { //any other case, rule 3
processed.add(token);
}
}
そうすれば、処理されたリストに結果が表示されます: "sorry"と"good_tt"
System.out.println(processed.toString());
次の出力を取得します。
[sorry, good_tt]
たとえば、for で終わるトークンを含む文字列があり、_tt
その文字列からその単語を削除したいとします。
String[] tokens = yourStr.split(" ");
for (String t : tokens) {
if (t.endsWith("_tt") {
yourStr = yourStr.replaceAll(t, "");
}
}
正規表現を使ってみませんか?