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

2022-09-01 02:16:22

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

s= "ddjdjdj+kfkfkf";

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

}

但它没有给出预期的结果。有什么想法吗?


答案 1

您需要它来代替:

if(s.contains("+"))

string类的intains()方法不采用正则表达式作为参数,而是采用普通文本。


编辑:

String s = "ddjdjdj+kfkfkf";

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

输出:

ddjdjdj

答案 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];

请注意,编写是首选 - 它更像是习语Java代码。String[] partsString parts[]