我要檢查,如果我的字符串中包含+ character.I嘗試下面的代碼如何檢查字符串中包含字符「+」
s= "ddjdjdj+kfkfkf";
if(s.contains ("\\+"){
String parts[] = s.split("\\+);
s= parts[0]; // i want to strip part after +
}
但亙古不變的預期給予主意result.Any?
我要檢查,如果我的字符串中包含+ character.I嘗試下面的代碼如何檢查字符串中包含字符「+」
s= "ddjdjdj+kfkfkf";
if(s.contains ("\\+"){
String parts[] = s.split("\\+);
s= parts[0]; // i want to strip part after +
}
但亙古不變的預期給予主意result.Any?
你需要這個來代替:
方法String
if(s.contains("+"))
contains()
類沒有采取正則表達式作爲一個參數,它需要正常的文本。
編輯:
String s = "ddjdjdj+kfkfkf";
if(s.contains("+"))
{
String parts[] = s.split("\\+");
System.out.print(parts[0]);
}
OUTPUT:
ddjdjdj
雖然沒有得到加分之前的部分,這聽起來像OP真正想要的。 – 2012-04-08 06:21:00
當我發表我的評論時,你的答案*只包含對'String.contains'的調用。 – 2012-04-08 06:38:54
(剛剛看過這個問題,我錯過了他已經在調用contains的事實,現在還爲時過早,但是指出其餘的代碼已經可以用了......) – 2012-04-08 06:46:25
爲什麼不乾脆:
int plusIndex = s.indexOf("+");
if (plusIndex != -1) {
String before = s.substring(0, plusIndex);
// Use before
}
這不太清楚爲什麼你的原始版本不起作用,但是你沒有說實際發生了什麼。如果你想使用正則表達式來分割不,我個人使用Guava:
Iterable<String> bits = Splitter.on('+').split(s);
String firstPart = Iterables.getFirst(bits, "");
如果你打算使用split
(無論是內置的版本或番石榴),你不需要首先檢查它是否包含+
- 如果沒有,那麼只會有一個結果。顯然,有效率的問題,但它是簡單的代碼:
// Calling split unconditionally
String[] parts = s.split("\\+");
s = parts[0];
注意書寫String[] parts
優於String parts[]
- 它更地道的Java代碼。
驚人的解決方案。非常感謝! – 2017-12-20 21:21:17
[+]簡單
String s = "ddjdjdj+kfkfkf";
if(s.contains ("+"))
{
String parts[] = s.split("[+]");
s = parts[0]; // i want to strip part after +
}
System.out.println(s);
請仔細閱讀http://tinyurl.com/so-hints - 這是沒用的,說這不會給預期的結果不說你期待什麼,你竟得到。 – 2012-04-08 06:21:40