2016-08-13 7 views
4

私はクラスのプログラムに取り組んでおり、これについて数日間頭を打っています。私は文字列内の出現の数を見つけなければならない。結果をHashMapに取得できました。しかし、私はそれが単一の文字列配列に変換できるようにする必要があります。ここに私がこれまで持っているものがあります。どんな提案も大歓迎です。ありがとう。ハッシュマップをJavaの単一文字配列に変換する

public static void main(String[] args) 
    { 
     String input = "xyz 456 123 123 123 123 123 123 xy 98 98 xy xyz abc abc 456 456 456 98 xy"; //String to be tested 
     String[] str = input.split(" "); // String put into an array 

     Map<String, Integer> occurrences = new HashMap<String, Integer>(); 
     Integer oldValue = 0; 

     for (String value : str) 
     { 
      oldValue = occurrences.get(value); 
      if (oldValue == null) 
      { 
       occurrences.put(value, 1); 
      } else 
      { 
       occurrences.put(value, oldValue + 1); 
      } 
     } 
     occurrences.remove(""); 

} 

対象の文字列配列:

[xy, 3, 123, 6, abc, 2, 456, 4, xyz, 2, 98, 3] 
+0

uを文字列にハッシュマップを変換するにはどうすればよいです。それは明らかではない。 –

+0

この質問は完全に回答されていますか?その後、それを回答として受け入れるか、フォローアップの質問を投稿してください。ありがとう。 –

答えて

3

はあなたのハッシュマップからキーと値のペアを読むことができるか、疑問ですか?

for(String entry : occurrences.keySet()) { 
    Integer value = occurrences.get(entry);   
    System.out.println(entry + ":" + value); 
} 

出力:

xy:3 
123:6 
abc:2 
456:4 
xyz:2 
98:3 

更新:

は、文字列配列を取得するには、[キー、値、キー、値

は、その後、次の例では、いくつかの簡単な測定値を示しています、...]次のコードを使用します。

ArrayList<String> strings = new ArrayList<>(); 

for(String entry : occurrences.keySet()) { 
    strings.add(entry); 
    strings.add(""+occurrences.get(entry)); 
} 

String[] asArray = strings.toArray(new String[strings.size()]); 

またはArrayListをなし:

String[] asArray = new String[occurrences.size()*2]; 
int index = 0; 

for(String entry : occurrences.keySet()) { 
    asArray[index++]=entry; 
    asArray[index++]=""+occurrences.get(entry); 
} 
+0

正確ではありません。文字列内に出現する単語の数を計算する配列を生成する文字列をテストする必要があります。私はハッシュマップで期待される結果を得ることができましたが、実際の結果に対してテストできるように、文字列配列に変換する必要があります。 –

+0

「実際の結果」を教えてください。お手伝いできますか?それ以外の場合は、文字列[]の文字列にどのような形式があるかを推測する必要があります。文字列(キー)と整数(値)があるので、文字列の1つの配列に格納する場合は、それらをいくつかの形式で結合する必要があります。 –

+0

確かに。申し訳ありません。この場合、結果は次のようになります: –

関連する問題