1

出力をこの形式で出力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);
4

5 に答える 5

5

コレクションまたは Map を使用する場合は、常にジェネリック型を使用してください1.5。したがって、マップを次のように宣言します。

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

そして、タイプキャストはまったく必要ありません。タイプ結果のみmap.get("email")を提供します。String

于 2012-11-09T06:38:08.560 に答える
2

これを試して:

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

于 2012-11-09T06:38:19.603 に答える
1

toString()または""と一緒+に使用します。

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

または

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

-Genericsそして常にwithを使用することを好むCollectionので、特定のタイプをコレクションに入力し、その特定のタイプをコレクションから取得します

例えば:

Map<String, String> map = new HashMap<String, String>();
于 2012-11-09T06:38:11.760 に答える
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");
于 2012-11-09T06:39:49.703 に答える
0

http://java.dzone.com/articles/two-ways-convert-java-map . このリンクを見てください。また、マップ値を文字列配列に変換すると、マップ値が文字列配列に変換されます。

于 2012-11-09T06:38:13.910 に答える