我需要动态检查字符串中是否存在字符序列“(Self)”并将其解析出来。Java检查并解析出包含字符序列的字符串
所以,如果我的字符串说MyString的是
“ABCDEF(自我)”
它应该返回的myString作为
“ABCDEF”
什么是做这件事的最好方法?它可以一步完成吗?
我需要动态检查字符串中是否存在字符序列“(Self)”并将其解析出来。Java检查并解析出包含字符序列的字符串
所以,如果我的字符串说MyString的是
“ABCDEF(自我)”
它应该返回的myString作为
“ABCDEF”
什么是做这件事的最好方法?它可以一步完成吗?
如下您可以使用replace
功能:
myString = myString.replace(" (Self)","");
这里,阅读更多有关things to note with String.replace或function definition本身。请注意,它被char
variant超载,所以你可以用类似的函数调用做两种事情。
myString = myString.replaceAll(Pattern.quote("(Self)"), ""));
如下您可以使用replaceAll
方法从String
类m。Regular Expressions
矿石上访问this链接。
如果字符串中没有Self
,代码将不会有问题。
尝试以下:
String test="ABCDEF (Self)";
test=test.replaceAll("\\(Self\\)", "");
System.out.println(test.trim());
输出:
ABCDEF
的挖掘是使用
只需查看String类的公共方法。
String modifyString(String str) {
if(str.contains("(Self)")) {
str = str.replace("(Self)", "");
str = str.trim();
}
return str;
}
从的问题,据我所知,从源字符串ABCDEF (Self)
也F
和(
之间的空间应该被删除。 我会建议使用正则表达式,如果你是舒服,否则:
String OrigString = "ABCDEF (Self)";
String newString= OrigString.replaceAll("\\(Self\\)", "").trim();
System.out.println("New String : --" +newString+"--");
您的情况下,正则表达式是:
\s*\(Self\)\s*
测试的Java代码中使用正则表达式是:
String newRegExpString = OrigString.replaceAll("\\s*\\(Self\\)\\s*", "");
System.out.println("New String : -" +newRegExpString+"--");
输出:
New String : --ABCDEF--
New String : -ABCDEF--
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replaceAll%28java.lang.String,%20java.lang。字符串%29返回字符串 – Leo 2014-09-30 09:08:56
正则表达式是你需要检查我的答案。 – 2014-09-30 09:14:31