如果它是“,”,则删除字符串的最后一个字符

时间:2020-02-06 11:17:27

标签: java string char

所以我有一个String,对它进行了一些操作后,碰巧最后我有一个“,”。现在,只有在确实是","的情况下,才能删除最后一个“”吗?

我的输入字符串是:

String input =",w84,w41,w56,w170,w56,w41,w84,/,,w24,w40,w17,w40,w48,,/,,,w16,w16,w16,,,/,,,,,,,,/,,,,,,,,/,,,,,,,,/,,,b1,b1,b1,,,/,,b3,b130,b17,b130,b129,,/,b69,b146,b131,b170,b131,b146,b69,";

,输出为:

,w84,w41,w56,w170,w56,w41,,w84/,,w24,w40,w17,w40,w48,,/,,,w16,,w16,,,/,,,,w32,,,,/,,,,,,,,/,,,,,,,,/,,,b1,b1,b1,,,/,,b3,b130,b17,b130,b129,,/,b69,b146,b131,b170,b131,b146,b69,, 

现在如何摆脱最后一个“,”?

4 个答案:

答案 0 :(得分:1)

您可以将replaceAll与正则表达式一起使用:

 input = input.replaceAll(",+$", "");

输出

...131,b146,b69

如果最后只保留一个,,如果要保留多个,则必须替换为,而不是空:

input = input.replaceAll(",+$", ",");

输出

...131,b146,b69,

答案 1 :(得分:1)

如果要避免使用正则表达式...

if (str != null && str.endsWith(',')) {
    return str.substring(0, str.length() -1);
}
return str;

或者您可以使用apache commins库并避免进行空检查

if (StringUtils.endsWith(str, ',') {
    return str.substring(0, str.length() -1);
}
return str;

答案 2 :(得分:0)

public String method(String str) {
if (str != null && str.length() > 0 && str.charAt(str.length() - 1) == ',') {
    str = str.substring(0, str.length() - 1);
}
return str;
}

如果最后一个字符是逗号,则此方法将其删除。如果要最后删除所有逗号,则可以更改此方法:

public String method(String str) {
while (str != null && str.length() > 0 && str.charAt(str.length() - 1) == ',') {
    str = str.substring(0, str.length() - 1);
}
return str;
}

答案 3 :(得分:0)

如果为,,则可以尝试以下代码从字符串中删除最后一个字符

public class Test {
    public static void main(String args[]) {
        String string = args[0];
        /* Please handle cases where string is empty or not defined */
        if(string.charAt(string.length() - 1) == ','){
            string = string.substring(0, string.length() - 1);
        }
      System.out.println(string);
    }
相关问题