次の質問プロンプトです: 形式で以下の情報をハッシュを作成します -どのようにオブジェクトの配列を文字列arrrayに変換し、個々の要素を分割しますか?
COUNTRYNAME =>"capital:population:currency name"
を少なくとも5つのレコードを作成します。
最大の人口を持つ国の詳細を印刷 大文字の名前が "L"で始まる国の通貨名を印刷します。
これは、put()
というレコードを設定し、hashmapの値を配列に変換し、配列を":"
の区切りで分割し、ループを実行してそれぞれの列から最大値を見つけ出すことを考えていました。
これが最善の方法であるのか、それとも良い方法があるのだろうと思っていました。その方法が理想的な場合は、Object [] countryValues
(以下のコードで)を文字列配列に変換する際に問題があります。そのため、split関数を使用できます。
":"
デリミタで値を分割すると予想されます。
HashMap<String,String> countrydata = new HashMap<String, String>();
countrydata.put("USA", "Washington DC:323,000,000:Dollar");
countrydata.put("Thailand", "Bangkok:69,000,000:Baht");
countrydata.put("Vietnam", "Hanoi:93,000,000:Dong");
countrydata.put("Laos", "Lientiane:7,000,000:Dollar");
countrydata.put("Belize", "Belmopan:370,000:Dollar");
Object [] countryValues = countrydata.keySet().toArray();
for (int i=0; i<countryValues.length; i++){
String [] splitted = countryValues[i].split(":");
}
for (int j=0; j<splitted.length; j++){
System.out.println(splitted[i]);
}
エラー:
方法split(String)
は、Object型のために定義されていません。
お寄せいただきありがとうございます。 さて、あなたが言及したようにforループを使用しようとしました。これは私が持っているものです: 'for(文字列値:countrydata.values()){ \t \t String [] arrayValue = value.split(": "); \t \t} \t \t \t \tがため(INT i = 0; I \t \t \tのSystem.out.println(arrayValue [I])。 –
申し訳ありませんが、私は書式を理解しようとしていました。また、その反復で値を分割すると、要素(つまり、「ワシントンDC」、「323,000,000」、「ドル」など)を配列に割り当てることになりますか?しかし、それは私の配列(arrayValue)が解決された変数ではない値の1つを印刷しようとしていると言います。 最後に、個々の要素が本当に別の配列に格納されている場合、 –
非常に多くの質問を申し訳ありませんが、私はこれをしばらく理解しようとしていましたが、苦労しています!! –