我如何从String变量java的最后一个字符中解脱出来

How can I relieve myself from the last character of a String variable java

本问题已经有最佳答案,请猛点这里访问。

我有字符串变量,在某些时候,变量在字符串末尾有"+"或""字符。我想从字符串的末尾删除这些字符。我写了以下代码,但它不起作用。代码编译,else命令工作,但if和if else语句不工作。谢谢你的帮助

1
2
3
4
5
6
7
8
9
10
11
12
if (konHamle.contains("+") )
{
    int kont1 = konHamle.indexOf("+");
    hamHamle = konHamle.substring(0, konHamle.length() - 1);
    break;
}
else
{
    hamHamle = konHamle;
    break;

}


使用String.endsWith()更简单:

1
2
3
if (konHamle.endsWith("+")){
    konHamle = konHamle.substring(0, konHamle.length() - 1);
}

或者更短(但可读性较差):

1
 konHamle = konHamle.endsWith("+") ? konHamle.substring(0, konHamle.length() - 1) : konHamle;


indexOf给了您第一次出现的机会,因此您的代码可能不起作用。

试试regex。$表示行尾,这也将处理多个字符,如问题中提到的#+

1
konHamle = konHamle.replaceAll("[#+]$","");


可以使用字符串的子字符串方法。

1
2
3
4
5
6
public String removeLastPlusMethod(String str) {
    if (str.length() > 0 && str.charAt(str.length()-1)=='+') {
      str = str.substring(0, str.length()-1);
    }
    return str;
}

还可以使用endswith方法检查字符串的最后一个字符。