8

在我的应用程序中,我想用字符串中的 %20 替换空格。我尝试过这种方式,

String flag1="http://74.208.194.142/admin/upload_image/1342594079_images (2).jpg";
flag1.replaceAll("", "%20");

但它不起作用请帮助我。我收到空指针异常。

4

4 回答 4

10

你应该这样做:

flag1 = flag1.replaceAll(" ", "%20");

首先,您放置的是空字符串而不是空格..其次,您必须将值返回到flag1变量中..

于 2012-10-01T10:23:37.807 回答
4
    String flag1="http://74.208.194.142/admin/upload_image/1342594079_images (2).jpg";
    URI uri = null;
    try {
        uri = new URI(flag1.replaceAll(" ", "%20"));
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println(uri);

控制台将显示输出为

http://74.208.194.142/admin/upload_image/1342594079_images%20(2).jpg

于 2012-10-01T10:38:49.643 回答
4

看看http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html

需要更换的不仅仅是空白。URL 由具有特殊含义的特殊字符组成(例如,开始查询字符串的问号)

String flag1 = URLEncoder.encode("This string has spaces", "UTF-8")
于 2012-10-01T12:19:31.120 回答
4

flag1.replaceAll()中,您的空间丢失。尝试:

String flag1="http://74.208.194.142/admin/upload_image/1342594079_images (2).jpg";
flag1 = flag1.replaceAll(" ", "%20");

并将结果设置为 flag1。

于 2012-10-01T10:25:53.247 回答