更改catch块中变量的值

时间:2013-05-28 07:25:53

标签: java try-catch

以下是代码:

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

我该怎么办?

2 个答案:

答案 0 :(得分:14)

字符串是immutable

  

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

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

StringBuilder是可变的。 StringBuilder用于构建一个String。在这种情况下,请使用StringBuilder。用法示例:

StringBuilder dateRemovedString = new StringBuilder();
dateRemovedString.append(str[i]);
return dateRemovedString.toString();

答案 1 :(得分:0)

如果您确定输入文本格式,那么请不要打扰异常。

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