如何检查字符串是否包含'+'字符

use*_*796 36 java string match

我想检查我的字符串是否包含+字符.我尝试了以下代码

s= "ddjdjdj+kfkfkf";

if(s.contains ("\\+"){
 String parts[] = s.split("\\+);
  s=  parts[0]; // i want to strip part after  +

}
Run Code Online (Sandbox Code Playgroud)

但它没有给出预期的结果.任何想法?

Eng*_*uad 78

你需要这个:

if(s.contains("+"))
Run Code Online (Sandbox Code Playgroud)

contains()String类的方法不将正则表达式作为参数,它采用普通文本.


编辑:

String s = "ddjdjdj+kfkfkf";

if(s.contains("+"))
{
    String parts[] = s.split("\\+");
    System.out.print(parts[0]);
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

ddjdjdj
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 11

为什么不呢:

int plusIndex = s.indexOf("+");
if (plusIndex != -1) {
    String before = s.substring(0, plusIndex);
    // Use before
}
Run Code Online (Sandbox Code Playgroud)

现在还不是很清楚为什么你的原始版本没有用,但是你没有说实际发生了什么.如果你想使用正则表达式进行拆分,我个人会使用Guava:

Iterable<String> bits = Splitter.on('+').split(s);
String firstPart = Iterables.getFirst(bits, "");
Run Code Online (Sandbox Code Playgroud)

如果您要使用split(内置版本或Guava),您不需要检查它是否包含+第一个 - 如果它不包含那么只有一个结果.显然存在效率问题,但代码更简单:

// Calling split unconditionally
String[] parts = s.split("\\+");
s = parts[0];
Run Code Online (Sandbox Code Playgroud)

请注意,写作String[] parts是首选String parts[]- 它是更惯用的Java代码.