【问题标题】:Replace double slashes with single slash and four slashes with two slashes用单斜杠替换双斜杠,用两个斜杠替换四个斜杠
【发布时间】:2023-03-16 11:37:01
【问题描述】:

我有以下网址:

http:////www.test.com//test

我想用单斜杠替换双斜杠,用两个斜杠替换四个斜杠,即输出是这样的:

http://www.test.com/test

【问题讨论】:

  • .replace("//", "/") 有效。如果您打算进一步使用它,请不要忘记分配给变量(s = s.replace("//", "/");

标签: java string url


【解决方案1】:
String sURL="http:////www.test.com//test";
sURL=sURL.replace("////","/x/x/x/x");
sURL=sURL.replace("//","/");
sURL=sURL.replace("/x/x/x/x","//");

/x/x/x/x 只是一个任意字符串,保证不会在 URL 中自然遇到。它“隐藏”了四个斜线,不会被 sURL.replace("//","/"); 替换

你可以试试:

String sURL="http:////www.test.com//test";
sURL=sURL.replace("//","/");

但我不知道这是否会将所有四个斜线变成一个斜线,而且我没有方便的平台进行测试。

编辑:添加了sURL= 以使其“按原样”正常工作,而不是示例。我还看到关于替换的相互冲突的帖子(有些帖子使用字符串,而其他帖子只使用单个字符)而且我没有测试平台,所以replace 可能需要replaceAll

【讨论】:

  • @PrestonM:它在问题实际上被标记为(Java)的语言中运行得很好,而不是你回答的语言(JavaScript)。在对所有内容进行投票之前,进行一些基本的事实检查不会有任何伤害。
【解决方案2】:

myString.replace("//", "/"); 应该可以工作

【讨论】:

    【解决方案3】:
    String s1 = "http:////www.test.com//test.";
    s1 = s1.replaceAll("//", "/");
    

    replaceAll 方法适用于正则表达式,但最简单的正则表达式只是字符串本身 - 这里是“//”。

    【讨论】:

    • 试试吧。输出是 http://www.test.com/test
    • 请撤消否决票 - 我测试过,输出是正确的。
    • 在 Linux 上的 Java 8 上运行良好。我刚刚又检查了一遍。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    相关资源
    最近更新 更多