在Java中从字符串中删除尾部斜杠

在Java中从字符串中删除尾部斜杠,java,string,char,arrays,Java,String,Char,Arrays,如果字符串是/,我正在尝试从字符串中删除最后一个字符。我正在使用字符串数组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);

如果字符串是
/
,我正在尝试从字符串中删除最后一个字符。我正在使用字符串数组
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]);
}
我做错了什么

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

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


可以使用以下方法使用正则表达式执行此操作:


String newString=tmp.replaceFirst(“/$”,”)

您可以使用以下方法使用正则表达式执行此操作:


String newString=tmp.replaceFirst(“/$”,”)

如果您只想删除尾随的“/”,应该这样做:

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

如果只想删除尾随的“/”,则应执行以下操作:

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

如果你有空字符串
那么
temp[st].length()-1==-1
如果你有空字符串
那么
temp[st].length()-1==-1
StringUtils有一个微妙的小方法,叫做:


仅当字符串的结尾是此搜索片段时,它才会删除该字符串的结尾。否则,此方法将返回相同的、未更改的字符串。

StringUtils有一个微妙的小方法,称为:


仅当字符串的结尾是此搜索片段时,它才会删除该字符串的结尾。否则,此方法将返回相同的、未更改的字符串。

您忘记了防御性编程的一个关键规则-永远不要相信输入。假设所有字符串都不是空的。为什么要将字符串存储在char[]中?temp中是否有任何内容?因为当temp为空时,您会得到一个null或length-1可能超出范围。但是对if(str.endsWith(“/”)进行sam模拟,然后删除最后一个字符。假设所有字符串都不是空的。为什么要将字符串存储在char[]中?temp中是否有任何内容?因为当temp为空时,您会得到一个null或length-1可能超出范围。但是对if(str.endsWith(“/”)进行sam模拟,然后删除最后一个字符。它似乎会重复执行,因此我建议
str=str.replaceAll(“/+$”,”)
在windows上替换尾随斜杠(因此它是反斜杠):
replaceAll(\\\\\$,”)
在windows和linux上替换:
.replaceAll((\\\\\\\\\/)$,”)
它似乎重复这样做,所以我建议
str=str.replaceAll(/+$,”)
在windows上替换尾随斜杠(因此它是反斜杠):
replaceAll(\\\\\$”,“”)
在windows和linux上替换:
.replaceAll(\\\\\\\\/)$,“”)
if (str.endsWith("/"))
    return str.substring(0,str.length()-1);
else
    return str;
String result = StringUtils.removeEnd(string, "/")