java代码删除额外的正斜杠

时间:2014-08-25 22:47:28

标签: java regex replace

我想删除字符串末尾的正斜杠,它使用Java重复两次。

这就是我所拥有的:

String s = "http://almaden.ibm.com//";
length  =  s.length();
Char buff = s.charAt((length);
if(buff == '//')
{

}
else  LOGGER.info("Doesnt end with trailing doubleslash");

请在我显示网址时建议如何删除额外的正斜杠。谢谢。

5 个答案:

答案 0 :(得分:1)

如果您只想删除尾部双斜杠(//),无论何时出现,您都可以尝试类似

的内容
if (s.endsWith("//")
{
    s = s.substring(0, s.length()-2); // Remove the last 2 characters, i.e. the //
}
else
{
    LOGGER.info("Doesnt end with trailing doubleslash");
}

答案 1 :(得分:0)

Try using regex:

String s = "http://almaden.ibm.com//somethingElse//index.php";
s=s.replaceAll("//","/").replaceFirst(":/", "://"); 
System.out.println(s);

输出:

http://almaden.ibm.com/somethingElse/site.html

说明:

s.replaceAll("//","/")

//的所有出现替换为/,然后

.replaceFirst(":/", "://")

//字符串后重新创建双斜杠protocol:

答案 2 :(得分:0)

简单版只会检查它是否以//结尾,如果它确实从最后删除了一个字符

if(s.endsWith('//')) {
    s = s.substring(s.length()-1);
}

如果它可以在字符串中的任何位置,那么您可以使用正则表达式

s = s.replaceAll("(//)(?<!(\\w+\\://))", "/");

答案 3 :(得分:0)

使用仅匹配字符串末尾的双斜杠的正则表达式:

s = s.replaceAll("//$", "/");

美元意味着&#34;输入结束&#34;。其余的是自我解释。


如果你想更灵活一点,你可以:

s = s.replaceAll("//*\\s*$", "/");

可处理任意数量的尾部斜杠并修剪尾随空格。

答案 4 :(得分:0)

"http://almaden.ibm.com//".replace(/\/\/$/,'/')

/\/\/$/匹配字符串末尾的//