イテレーターを使わないとJSONが解析できないことに気がついた

JSONでキーがあらかじめわかっていれば、使うのは簡単だった。

でもキーがわからないときはどうすればいいのか?

以下のとおり。

            JSONObject menuJson = new JSONObject(MENU_JSON);
            Iterator<?> keys = menuJson.keys();

            Log.d(TAG, "keys= " + keys.hasNext());

            while (keys.hasNext()) {
                String key = (String) keys.next();
                Log.d(TAG, "" + key);

                JSONObject j = new JSONObject(menuJson.getString(key));
                Iterator<?> keyss = j.keys();

                while (keyss.hasNext()) {

                    String keyy = (String) keyss.next();
                    Log.d(TAG, "" + keyy);

                }

            }

下がミソじゃの

while (keys.hasNext()) {
                String key = (String) keys.next();
}

Javaでマッチング、正規表現のとき、$1 $2 とか使いたいじゃん

Pattern p = Pattern.compile("^(.*?)(.png)$");
Matcher m = p.matcher(photoUrl);
String result = m.replaceFirst("$1"); 

こうすると result に$1が入るよ。つまり、

^(.*?)(.png)$

の最初の括弧の

(.*?)

にマッチした部分がゲットできるってことね。

photoUrl = “hogehoge.png”;

だったら、

hogehoge

がとれるってことだよん。