2016-11-12 85 views
0

我以下面的格式从我的java程序中获取输出。在单行中打印arraylist中的每个数组项目

[种族,护理,英亩] [动作,猫]

预期:在不同的行中的每个数组元素。

比赛保健英亩
行为猫

我已经试图打印,但得到。

比赛保健英亩行为猫

有没有任何办法可以绕过这样我就可以得到预期的结果。以下是我的代码的要点。谢谢

public static void main(String args[]) { 

     try { 
      Scanner sc = readWords(); 
      Map<String, List<String>> wordAnagramPairs = new HashMap<>(); 
      wordAnagramPairs = mapAnagrams(sc); 
      for (String anagram : wordAnagramPairs.keySet()) { 
       if (wordAnagramPairs.get(anagram).size() > 1) { 
        System.out.print(wordAnagramPairs.get(anagram)); 
//     for(String anagrams : wordAnagramPairs.get(anagram)){ 
//      System.out.print(anagrams + " "); 
//     } 
       } 
      } 



     } catch (FileNotFoundException e) { 
      System.out.println("File Not Found"); 
     } 
    } 

回答

1

使用\ n新行打印

for (String anagram : wordAnagramPairs.keySet()) { 
    if (!wordAnagramPairs.get(anagram).isEmpty()) { 
     for (String word : wordAnagramPairs.get(anagram)) { 
     System.out.print(word+" "); 
     } 
    } 
    System.out.print("\n"); 
} 
1

你需要让你的语句中使用println如果你想打印在每一个元素新行:

for(String anagrams : wordAnagramPairs.get(anagram)){ 
         System.out.println(anagrams + " "); 
        } 

如果你想打印出每个数组元素在同一行,但有一个单独的行每个数组,你会做这样的事情:

for (String anagram : wordAnagramPairs.keySet()) { 
       //You need to make this 0 rather than 1 if you want to print 
       //out an array with one element 
       if (wordAnagramPairs.get(anagram).size() > 0) { 
        for(String anagrams : wordAnagramPairs.get(anagram)){ 
         System.out.print(anagrams + " "); 
        } 

       } 
      //you need to put a print statement outside the second for loop 
      System.out.println(""); 
      }