我要检查,如果我的字符串中包含+ character.I尝试下面的代码如何检查字符串中包含字符“+”
s= "ddjdjdj+kfkfkf";
if(s.contains ("\\+"){
String parts[] = s.split("\\+);
s= parts[0]; // i want to strip part after +
}
但亘古不变的预期给予主意result.Any?
我要检查,如果我的字符串中包含+ character.I尝试下面的代码如何检查字符串中包含字符“+”
s= "ddjdjdj+kfkfkf";
if(s.contains ("\\+"){
String parts[] = s.split("\\+);
s= parts[0]; // i want to strip part after +
}
但亘古不变的预期给予主意result.Any?
你需要这个来代替:
方法String
if(s.contains("+"))
contains()
类没有采取正则表达式作为一个参数,它需要正常的文本。
编辑:
String s = "ddjdjdj+kfkfkf";
if(s.contains("+"))
{
String parts[] = s.split("\\+");
System.out.print(parts[0]);
}
OUTPUT:
ddjdjdj
虽然没有得到加分之前的部分,这听起来像OP真正想要的。 – 2012-04-08 06:21:00
当我发表我的评论时,你的答案*只包含对'String.contains'的调用。 – 2012-04-08 06:38:54
(刚刚看过这个问题,我错过了他已经在调用contains的事实,现在还为时过早,但是指出其余的代码已经可以用了......) – 2012-04-08 06:46:25
为什么不干脆:
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
(无论是内置的版本或番石榴),你不需要首先检查它是否包含+
- 如果没有,那么只会有一个结果。显然,有效率的问题,但它是简单的代码:
// Calling split unconditionally
String[] parts = s.split("\\+");
s = parts[0];
注意书写String[] parts
优于String parts[]
- 它更地道的Java代码。
惊人的解决方案。非常感谢! – 2017-12-20 21:21:17
[+]简单
String s = "ddjdjdj+kfkfkf";
if(s.contains ("+"))
{
String parts[] = s.split("[+]");
s = parts[0]; // i want to strip part after +
}
System.out.println(s);
请仔细阅读http://tinyurl.com/so-hints - 这是没用的,说这不会给预期的结果不说你期待什么,你竟得到。 – 2012-04-08 06:21:40