从Java中的字符串中删除尾部斜杠
问题描述:
我想从字符串中删除最后一个字符,如果它是/
。我正在使用字符串数组temp[]
来存储字符串。从Java中的字符串中删除尾部斜杠
这里是我的代码:
char ch = ' ';
for (int st = 0; st < temp.length; st++)
{
ch = temp[st].charAt(temp[st].length()-1);
if (ch == '/')
temp[st] = temp[st].substring(0, temp[st].length()-1);
result2.append(temp[st]);
}
但我正在逐渐
StringIndexOutOfBoundsException -1
我在做什么错?
答
如果你有空字符串""
然后temp[st].length()-1 == -1
答
删除最后一个字符,如果它是/ JAVA
str = str.replaceAll("/$", "");
+2
它似乎反复做,所以我会建议'str = str.replaceAll(“/ + $”,“”);' – 2012-04-03 12:36:06
答
如果你只是想删除尾随的'/',这应该这样做:
if (str.endsWith("/"))
return str.substring(0,str.length()-1);
else
return str;
你忘了防御式编程的一个关键规则 - 永远不要相信输入。你假设所有的字符串都不是空的。 – Nim 2012-04-03 12:03:38
你为什么要在char []中存储你的字符串? – Churk 2012-04-03 12:05:07
你有什么温度?因为当temp为空时,你会得到一个null或length-1可能会超出范围。但是,如果(str.endsWith(“/”))然后删除最后一个字符,请使用sam simpeler。 – roel 2012-04-03 12:26:40