Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除额外正斜杠的java代码_Java_Regex_Replace - Fatal编程技术网

删除额外正斜杠的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时删除额外的正斜杠。谢谢。如果您只想删除尾部的双斜杠

我想删除字符串末尾的正斜杠,它使用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时删除额外的正斜杠。谢谢。

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

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(/\/\/$/,'/')