更改catch块中变量的值

Mr *_*war 3 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;
}
Run Code Online (Sandbox Code Playgroud)

对于,

输入文本:Cricket Match - 01 Jul

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

但我想,输出:Cricket Match

我该怎么办?

joh*_*902 14

字符串是不可变的:

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

dateRemovedString = dateRemovedString.concat(str[i]);
Run Code Online (Sandbox Code Playgroud)

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

StringBuilder dateRemovedString = new StringBuilder();
dateRemovedString.append(str[i]);
return dateRemovedString.toString();
Run Code Online (Sandbox Code Playgroud)