我想检查我的字符串是否包含 + 字符。我尝试了以下代码
s= "ddjdjdj+kfkfkf";
if(s.contains ("\\+"){
String parts[] = s.split("\\+);
s= parts[0]; // i want to strip part after +
}
但它没有给出预期的结果。知道吗?
你需要这个:
if(s.contains("+"))
contains()
类的方法String
不接受正则表达式作为参数,它接受普通文本。
编辑:
String s = "ddjdjdj+kfkfkf";
if(s.contains("+"))
{
String parts[] = s.split("\\+");
System.out.print(parts[0]);
}
输出:
ddjdjdj
为什么不只是:
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
(内置版本或 Guava),则无需检查它是否首先包含+
- 如果不包含,则无论如何只会有一个结果。显然存在效率问题,但它是更简单的代码:
// 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);