文字列に+文字が含まれているかどうかを確認したい
s= "ddjdjdj+kfkfkf";
if(s.contains ("\\+"){
String parts[] = s.split("\\+);
s= parts[0]; // i want to strip part after +
}
しかし、期待どおりの結果は得られません。
代わりにこれが必要です:
if(s.contains("+"))
contains()
のメソッド String
クラスはパラメーターとして正規表現を使用せず、通常のテキストを使用します。
編集:
String s = "ddjdjdj+kfkfkf";
if(s.contains("+"))
{
String parts[] = s.split("\\+");
System.out.print(parts[0]);
}
出力:
ddjdjdj
なぜだけではありません:
int plusIndex = s.indexOf("+");
if (plusIndex != -1) {
String before = s.substring(0, plusIndex);
// Use before
}
元のバージョンが機能しなかった理由は明確ではありませんが、実際に何が起こったのかを言わなかったのです。正規表現を使用してnotを分割する場合、個人的に Guava を使用します。
Iterable<String> bits = Splitter.on('+').split(s);
String firstPart = Iterables.getFirst(bits, "");
split
(組み込みバージョンまたはGuava)を使用する場合、最初に+
が含まれているかどうかを確認する必要はありません-存在しない場合は1つだけですとにかく結果。明らかに効率性の問題がありますが、よりシンプルなコードです。
// Calling split unconditionally
String[] parts = s.split("\\+");
s = parts[0];
String[] parts
よりもString parts[]
の方が好ましいことに注意してください。これは、はるかに慣用的なJavaコードです。
[+]シンプルです
String s = "ddjdjdj+kfkfkf";
if(s.contains ("+"))
{
String parts[] = s.split("[+]");
s = parts[0]; // i want to strip part after +
}
System.out.println(s);