我需要动态检查char序列的存在"(Self)"在一个字符串中解析它。
所以如果我的字符串说myString是
" ABCDEF(自我)"
它应该将myString作为
返回" ABCDEF"
最好的方法是什么?可以一步完成吗?
答案 0 :(得分:2)
您可以使用replace
功能,如下所示:
myString = myString.replace(" (Self)","");
在此处,详细了解things to note with String.replace或function definition本身。请注意,它被char
variant重载,因此您可以使用类似的函数调用执行两种操作。
答案 1 :(得分:1)
您可以使用replaceAll
类中的String
方法,如下所示:
myString = myString.replaceAll(Pattern.quote("(Self)"), ""));
答案 2 :(得分:0)
请尝试以下操作:
String test="ABCDEF (Self)";
test=test.replaceAll("\\(Self\\)", "");
System.out.println(test.trim());
输出
ABCDEF
挖掘是使用Regular Expressions
获取更多信息,请访问this链接。
如果字符串中没有Self
,代码就不会出现问题。
答案 3 :(得分:0)
只需查看String类'公共方法。
String modifyString(String str) {
if(str.contains("(Self)")) {
str = str.replace("(Self)", "");
str = str.trim();
}
return str;
}
答案 4 :(得分:0)
从问题中,我了解到源字符串ABCDEF (Self)
也应删除F
和(
之间的空格。
如果您对此感到满意,我建议您使用regEx,否则:
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--