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

时间:2012-04-08 06:16:01

标签: java string match

我想检查我的字符串是否包含+字符。我尝试使用以下代码

s= "ddjdjdj+kfkfkf";

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

}

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

3 个答案:

答案 0 :(得分:77)

你需要这个:

if(s.contains("+"))
contains()类的

String方法不会将正则表达式作为参数,而是采用普通文本。


修改

String s = "ddjdjdj+kfkfkf";

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

<强>输出:

ddjdjdj

答案 1 :(得分:11)

为什么不呢:

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(内置版本或番石榴),你不需要先检查它是否包含+ - 如果它没有&# 39;无论如何,只有一个结果。显然,这是一个效率问题,但它的代码更简单:

// Calling split unconditionally
String[] parts = s.split("\\+");
s = parts[0];

请注意,写String[] partsString parts[]更受欢迎 - 它是更惯用的Java代码。

答案 2 :(得分:1)

[+]更简单

    String s = "ddjdjdj+kfkfkf";

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