我正在尝试从字符串中删除最后一个字符,如果它是/
。我使用字符串数组temp[]
来存储字符串。
这是我的代码:
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
我做错了什么?
答案 0 :(得分:21)
删除最后一个字符(如果是/ java
)
str = str.replaceAll("/$", "");
答案 1 :(得分:12)
如果你只想删除一个尾随的'/',这应该这样做:
if (str.endsWith("/"))
return str.substring(0,str.length()-1);
else
return str;
答案 2 :(得分:4)
您可以使用replaceFirst(regex, string)方法使用正则表达式执行此操作:
String newString = tmp.replaceFirst("/$", "");
答案 3 :(得分:1)
如果你有空字符串""
,那么temp[st].length()-1 == -1
答案 4 :(得分:1)
StringUtils具有这个微妙的小方法,称为:removeEnd(String str, String remove)
String result = StringUtils.removeEnd(string, "/")
仅当它是此搜索的片段时,它才会删除字符串的结尾。否则,此方法将返回相同的,不变的字符串。