所以我有一个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,,
现在如何摆脱最后一个“,”?
答案 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);
}