空格不会被删除

时间:2016-12-16 12:08:21

标签: java string whitespace stringbuilder removing-whitespace

假设有一个url="www.example.com/"。使用下面的代码我想删除尾部斜杠,但它在字符串的末尾留下一个空白(顺便说一下我不知道为什么)并使用其余的代码,我试图删除空格但它不管用。

    String url="http://www.example.com/";
    int slash=url.lastIndexOf("/");


    StringBuilder myURL = new StringBuilder(url);

    if(url.endsWith("/")){
       myURL.setCharAt(slash, Character.MIN_VALUE );
       url=myURL.toString();
    }

    url=url.replaceAll("\\s+","");
    System.out.println(url);

8 个答案:

答案 0 :(得分:4)

尝试修剪它:url = url.trim();

答案 1 :(得分:2)

因为\s+Character.MIN_VALUE不匹配。请改用' '

String url="www.example.com/";
int slash=url.lastIndexOf("/");


StringBuilder myURL = new StringBuilder(url);

if(url.endsWith("/")){
   myURL.setCharAt(slash, ' ');
   url=myURL.toString();
}

url=url.replaceAll("\\s+","");
System.out.println(url);

但为什么不删除/

String url="www.example.com/";
int slash=url.lastIndexOf("/");

StringBuilder myURL = new StringBuilder(url);
myURL.deleteCharAt(slash);
System.out.println(myURL);

答案 2 :(得分:2)

String url="www.example.com/";    
if(url.endsWith("/")){
            url = url.substring(0, url.length()-1);
        }

System.out.println(url);

答案 3 :(得分:1)

您应该使用deleteCharAt()代替setCharAt()。 但最简单的工作方式是

String url="www.example.com/";
url = url.substring(0, url.lastIndexOf("/"));

答案 4 :(得分:1)

问题似乎是使用setCharAt方法。

此方法将char替换为另一个char。所以即使你用Character.MIN_VALUE替换它,乍一看它可能看起来代表文字Null,它实际上仍然是一个unicode字符(' \ 0000'又称空字符)。

最简单的解决方法是替换......

myURL。 setCharAt (斜杠,Character.MIN_VALUE);

...与

myURL的 deleteCharAt (斜线);

关于空字符的更多信息......

Understanding the difference between null and '\u000' in Java

what's the default value of char?

这是我的第一个回答,如果我没有遵守约定,那么道歉。

答案 5 :(得分:0)

我认为空格是由Character.MIN_VALUE被解释为空格引起的。

试试这个。它比你当前的替换代码更干净,并且不会留下任何空间。

if(url.endsWith("/")){
    url = url.trim().substring(0, url.length-1);
}

答案 6 :(得分:0)

使用以下

替换 if-block 中的代码
url = url.substring(0, url.length()-1).trim();

然后我希望您不再需要 StringBuilder 对象。

所以你的最终代码看起来像

String url="www.example.com";
url = (url.endsWith("/")) ? url.substring(0, url.length()-1) : url;
System.out.print(url);

答案 7 :(得分:0)

如果可以通过单行实现,为什么让事情变得复杂

String url="www.example.com/";
url=url.replace("/","");
System.out.println(url);