【问题标题】:how to replace space with %20 in url in android in jsonparsing [closed]如何在jsonparsing中用android中的url中的%20替换空格[关闭]
【发布时间】:2012-10-01 10:22:16
【问题描述】:

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

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

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

【问题讨论】:

  • 这不是安卓。这是java。非常基础的java。

标签: java


【解决方案1】:

看看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")

【讨论】:

  • 不知道为什么这甚至被投票,OP正在替换路径参数,而不是查询参数,URLEncoder将“”编码为“+”而不是“%20”
  • 这将添加 + 而不是 %20
【解决方案2】:

你应该这样做:

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

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

【讨论】:

  • 请帮我在哪里做错了建议我在哪里需要改变
  • flag1 = flag1.replaceAll(" ", "%20");应该工作
  • 我也试过了,但我得到空指针异常
  • 你尝试了什么? flag1 = flag1.replaceAll(" ", "%20"); 可以给出 NPE 的唯一方法是如果 flag1 一开始就为空。
【解决方案3】:

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

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

并将结果设置为 flag1。

【讨论】:

    【解决方案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

    【讨论】:

      猜你喜欢
      • 2014-08-19
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      相关资源
      最近更新 更多