2012-04-03 68 views
1

我想从字符串中删除最后一个字符,如果它是/。我正在使用字符串数组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 

我在做什么错?

+4

你忘了防御式编程的一个关键规则 - 永远不要相信输入。你假设所有的字符串都不是空的。 – Nim 2012-04-03 12:03:38

+0

你为什么要在char []中存储你的字符串? – Churk 2012-04-03 12:05:07

+0

你有什么温度?因为当temp为空时,你会得到一个null或length-1可能会超出范围。但是,如果(str.endsWith(“/”))然后删除最后一个字符,请使用sam simpeler。 – roel 2012-04-03 12:26:40

回答

1

如果你有空字符串""然后temp[st].length()-1 == -1

19

删除最后一个字符,如果它是/ JAVA

str = str.replaceAll("/$", ""); 
+2

它似乎反复做,所以我会建议'str = str.replaceAll(“/ + $”,“”);' – 2012-04-03 12:36:06

12

如果你只是想删除尾随的'/',这应该这样做:

if (str.endsWith("/")) 
    return str.substring(0,str.length()-1); 
else 
    return str;