Java检查并解析包含字符序列的字符串

时间:2014-09-30 09:06:18

标签: java

我需要动态检查char序列的存在"(Self)"在一个字符串中解析它。

所以如果我的字符串说myString是

  

" ABCDEF(自我)"

它应该将myString作为

返回
  

" ABCDEF"

最好的方法是什么?可以一步完成吗?

5 个答案:

答案 0 :(得分:2)

您可以使用replace功能,如下所示:

myString = myString.replace(" (Self)","");

在此处,详细了解things to note with String.replacefunction 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--