3

这是代码:

public static String removeDateFromString(String txt) {
    String dateRemovedString = new String();
    String[] str = txt.split("-");

    for(int i=0; i<str.length; i++) {

        SimpleDateFormat format = new SimpleDateFormat("dd MMM");
        try {
            format.parse(str[i]);
        } catch(ParseException e) {
            dateRemovedString.concat(str[i]);
        }
    }
    return dateRemovedString;
}

为了,

输入文本:Cricket Match - 01 Jul

输出文本:(""空字符串)

但我想要,输出:Cricket Match

我应该怎么办?

4

2 回答 2

14

字符串是不可变的:

注意: String 类是不可变的,因此一旦创建 String 对象就无法更改。String 类有许多方法,其中一些将在下面讨论,它们似乎可以修改字符串。由于字符串是不可变的,这些方法真正做的是创建并返回一个包含操作结果的新字符串。

dateRemovedString = dateRemovedString.concat(str[i]);

StringBuilder 是可变的。StringBuilder 用于构建字符串。在这种情况下,请改用 StringBuilder。示例用法:

StringBuilder dateRemovedString = new StringBuilder();
dateRemovedString.append(str[i]);
return dateRemovedString.toString();
于 2013-05-28T07:28:30.667 回答
0

如果您确定输入的文本格式,那么不要费心去打异常。

只需使用 split 或 RegExp 提取您感兴趣的部分,然后对其进行处理

于 2013-05-28T07:59:17.387 回答