2012-04-03 65 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;