这个问题已经在这里有一个答案:
- 我怎么能当一个字符在字符串中出现检查? 15个回答
我要检查,如果我的字符串中包含+ 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想法?
你需要这个来代替:
if(s.contains("+"))
contains()
的方法String
类不采取正则表达式作为参数,它需要正常的文本。
编辑:
String s = "ddjdjdj+kfkfkf";
if(s.contains("+"))
{
String parts[] = s.split("\\+");
System.out.print(parts[0]);
}
OUTPUT:
ddjdjdj
为什么不干脆:
int plusIndex = s.indexOf("+");
if (plusIndex != -1) {
String before = s.substring(0, plusIndex);
// Use before
}
这真不明白为什么你的原始版本没有工作,但你并没有说究竟发生了什么。 如果要分割不使用正则表达式,我个人使用的番石榴 :
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代码。
[+]是更简单的
String s = "ddjdjdj+kfkfkf";
if(s.contains ("+"))
{
String parts[] = s.split("[+]");
s = parts[0]; // i want to strip part after +
}
System.out.println(s);