如何检查字符串中包含“+”字[复制](how to check if string contains

2019-06-23 10:44发布

这个问题已经在这里有一个答案:

  • 我怎么能当一个字符在字符串中出现检查? 15个回答

我要检查,如果我的字符串中包含+ character.I尝试下面的代码

s= "ddjdjdj+kfkfkf";

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

}

但它不列入给预期result.Any想法?

Answer 1:

你需要这个来代替:

if(s.contains("+"))

contains()的方法String类不采取正则表达式作为参数,它需要正常的文本。


编辑:

String s = "ddjdjdj+kfkfkf";

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

OUTPUT:

ddjdjdj


Answer 2:

为什么不干脆:

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代码。



Answer 3:

[+]是更简单的

    String s = "ddjdjdj+kfkfkf";

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


文章来源: how to check if string contains '+' character [duplicate]