我想删除字符串末尾的正斜杠,它使用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");
请在我显示网址时建议如何删除额外的正斜杠。谢谢。
答案 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)
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(/\/\/$/,'/')
/\/\/$/
匹配字符串末尾的//