删除额外正斜杠的java代码
我想删除字符串末尾的正斜杠,它使用Java重复了两次 以下是我所拥有的:删除额外正斜杠的java代码,java,regex,replace,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"); 请建议我如何在显示URL时删除额外的正斜杠。谢谢。如果您只想删除尾部的双斜杠
String s = "http://almaden.ibm.com//";
length = s.length();
Char buff = s.charAt((length);
if(buff == '//')
{
}
else LOGGER.info("Doesnt end with trailing doubleslash");
请建议我如何在显示URL时删除额外的正斜杠。谢谢。如果您只想删除尾部的双斜杠(
/
),无论何时出现,您都可以尝试以下操作
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");
}
输出:
http://almaden.ibm.com/somethingElse/site.html
说明:
s.replaceAll("//","/")
将所有发生的/
替换为/
,然后
.replaceFirst(":/", "://")
在
协议:
字符串之后重新创建双斜杠/
。简单版本只需检查它是否以/
结尾,以及是否从结尾删除了一个字符
if(s.endsWith('//')) {
s = s.substring(s.length()-1);
}
如果它可以位于字符串中的任何位置,则可以使用正则表达式
s = s.replaceAll("(//)(?<!(\\w+\\://))", "/");
s=s.replaceAll(“(//)(?使用只匹配字符串末尾双斜杠的正则表达式:
s = s.replaceAll("//$", "/");
美元的意思是“投入结束”。其余的都是不言自明的
如果您想在这方面更加灵活,您可以:
s = s.replaceAll("//*\\s*$", "/");
它可以处理任意数量的尾随斜杠,也可以修剪尾随空白
"http://almaden.ibm.com//".replace(/\/\/$/,'/')
/\/\/$/
匹配字符串末尾的一个/
,看起来您希望某个正则表达式替换URI协议(例如http://)中不包含的所有//将永远不会返回两个字符。(您还错误计算了该行的括号。)+1仔细阅读这个问题--不需要正则表达式!谢谢。我试着给出最简单的答案。:-)如果在任何地方都能找到,这还不够吗?s=s.replaceAll(“//*”,”);当我尝试这个s=s.replaceAll((/)(?)?
"http://almaden.ibm.com//".replace(/\/\/$/,'/')