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代码.
| 归档时间: |
|
| 查看次数: |
210690 次 |
| 最近记录: |