繁体   English   中英

Java代码删除多余的正斜杠

[英]java code to remove extra forward slash

我想在使用Java重复两次的String的末尾删除正斜杠。

这是我所拥有的:

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");
}

尝试使用正则表达式:

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:字符串后重新创建双斜杠//

简单版本只会检查它是否以//结尾,并且是否确实从末尾删除了一个字符

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

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

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

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

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

美元表示“输入结束”。 其余的不言自明。


如果您想对此更加灵活,可以:

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

它可以处理任意数量的尾部斜杠,也可以修剪尾部空白。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM