如何在Java中将映射值转换为字符串

时间:2012-11-09 06:36:30

标签: java map

我能够以这种格式System.out.println(map.get("email"));//this is printing fine打印我的输出,但是在将它分配到String变量后我无法打印相同的值。我试过了: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);

5 个答案:

答案 0 :(得分:5)

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

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

然后你根本不需要类型转换。 map.get("email")只会为您提供String类型的结果。

答案 1 :(得分:1)

toString()""+

一起使用

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

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

- 并且始终更喜欢将GenericsCollection一起使用,因此您将特定类型输入集合并从集合中获取该特定类型

<强>例如

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

答案 2 :(得分:1)

试试这个:

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

如果您正在使用java 1.5+,建议使用特定于类型的Map。您的地图减速度为Map<String,String> 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");