【问题标题】:how to covert map values into string in Java如何在Java中将映射值转换为字符串
【发布时间】:2023-03-17 21:05:02
【问题描述】:

我能够以这种格式System.out.println(map.get("email"));//this is printing fine 打印我的输出,但在将其分配给字符串变量后我无法打印相同的值。我试过了:String email=(String) map.get("email"); System.out.println("Email--"+email);//But this is not printing
如何将地图值转换为字符串?请帮我。

我的完整代码:

String url = "https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token="
              + authResponse.accessToken; 
            final StringBuffer r = new StringBuffer(); 
            final URL u = new URL(url);
            final URLConnection uc = u.openConnection();
            final int end = 1000;
            InputStreamReader isr = null;
            BufferedReader br = null; 
            isr = new InputStreamReader(uc.getInputStream());
            br = new BufferedReader(isr);
            final int chk = 0; 
            String pat = "\"(.*)\": \"(.*)\",";
            Pattern pattern = Pattern.compile(pat);
            Matcher matcher = null;
            Map map = new HashMap();

            while ((url = br.readLine()) != null)
            {
                if ((chk >= 0) && ((chk < end))) {
                    matcher = pattern.matcher(url);
                    if(matcher.find()) {
                        map.put(matcher.group(1), matcher.group(2));
                    }
                    //r.append(url).append('\n');
                }
            }
              System.out.println(map.get("email")); 
              String email=(String) map.get("email"); 
              System.out.println(email);

【问题讨论】:

    标签: java map


    【解决方案1】:

    在使用任何集合或 Map 时始终使用泛型类型,当然,除非您使用的是早于 1.5 的 Java 版本。因此,将您的地图声明为:-

    Map<String, String> map = new HashMap<String, String>();
    

    然后你就根本不需要类型转换了。 map.get("email") 只会给你String 类型的结果。

    【讨论】:

    • +1 用于建议正确的解决方案,而不仅仅是修复代码
    【解决方案2】:

    试试这个:

    String email=map.get("email").toString();

    【讨论】:

      【解决方案3】:

      toString()""+ 一起使用,

      String s = map.get("email").toString();

      或者

      String s = map.get("email")+"";

      -而且总是更喜欢将GenericsCollection 一起使用,因此您将特定类型输入集合并从集合中取出该特定类型。 p>

      例如:

      Map<String, String> map = new HashMap<String, String>();
      

      【讨论】:

      • 如果您希望它使用空值,则使用""+String.valueOf(map.get("email"))(在这两种情况下都会给出字符串“null”)
      • 这就是我要说的。只有map.get("email").toString() 不适用于空值
      【解决方案4】:

      http://java.dzone.com/articles/two-ways-convert-java-map。看看这个链接。还将地图值转换为字符串数组convert Map Values into String Array

      【讨论】:

        【解决方案5】:

        如果您正在使用 java 1.5+,建议使用特定类型的 Map。您的地图减速将是Map&lt;String,String&gt; map

        Map<String,String> map = new HashMap<>(); // Diamond operator available in java 7 
        String email= map.get("email");
        
        
        Map<String,String> map = new HashMap<String,String>(); // for java 5+ 
        String email= map.get("email");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-10-20
          • 2023-03-28
          • 1970-01-01
          • 2014-03-10
          • 2021-12-25
          • 2017-01-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多