2016-11-30 67 views
0

好吧,这可能是一个非常基本的问题,但我对我的生活无法弄清楚Java输出格式,我只是没有任何练习。我正在构建一个术语文档矩阵,用于统计一系列句子中某些单词的出现次数。矩阵出来罚款与下面的代码带标签的格式化矩阵

for(int i=0; i<rows; i++){ 
      for(int j=0; j<columns; j++){ 
       System.out.print(String.format("%3s", matrix[i][j])); 
      } 
      System.out.println(""); 
} 

1.4.3本:

0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 0 
    0 0 0 0 0 0 1 0 0 0 0 2 0 0 1 0 0 0 0 1 0 2 0 0 0 1 0 0 0 0 0 0 0 
    0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 3 0 0 1 0 0 0 0 0 
    0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 
    0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 
    0 1 1 0 0 0 0 0 0 0 0 2 0 0 1 0 1 0 0 1 0 2 0 0 0 0 1 0 0 0 0 0 0 
    1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 
    0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
    0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 
    0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 3 0 0 0 0 0 
    0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 
    0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
    0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 0 0 0 0 1 0 0 0 0 0 0 
    0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
    1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 
    0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 2 0 1 0 1 0 1 0 0 0 0 0 0 0 
    0 0 0 0 1 1 0 0 0 2 0 0 1 1 0 1 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 1 

不过,我想补充的行和列标识符,使它看起来更像是这个(列标题来自一个字符串数组并会有20句):

   applianc, around, autonom, averag, bath, bedroom, car, charg, drive, eat, home, hour, hous, includ, kilomet, kitchen, lap, larg, live, mile, over, per, pet, road, room, second, sedan, size, test, up, updat, veri, water 
Sentence 1: 

Sentence 2: 

Sentence 3: 
. 
. 
. 

通过行和列排队,使他们很容易辨认,或许与电网或东西作为分隔符。我对如何实现这一目标毫无头绪。

回答

0

下你的榜样,这样的事情应该工作

String[] columns = {"applianc", " around", " autonom", " averag", " bath", " bedroom", " car", " charg", " drive", " eat", " home", " hour", " hous", " includ", " kilomet", " kitchen", " lap", " larg", " live", " mile", " over", " per", " pet", " road", " room", " second", " sedan", " size", " test", " up", " updat", " veri", " water"}; 
int[][] matrix = {{0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0}, 
     {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, 
     {0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0}, 
     {0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0}, 
     {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0}, 
     {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, 
     {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 1, 0, 0, 1, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, 
     {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, 
     {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, 
     {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
     {0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0}, 
     {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0}, 
     {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
     {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0}, 
     {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
     {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, 
     {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, 
     {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, 
     {0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 2, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, 
     {0, 0, 0, 0, 1, 1, 0, 0, 0, 2, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1}}; 


System.out.print(String.format("%" + ("sentence ".length() + ("" + matrix.length).length() + 2) + "s"," ")); 

for(int i=0; i<columns.length; i++){ 
    System.out.print(columns[i]); 
} 

System.out.println(""); 

for(int i=0; i<matrix.length; i++) { 
    System.out.print("sentence " + String.format("%" + ("" + matrix.length).length() + "S", (i + 1)) + ": "); 

    for(int j=0; j<matrix[i].length; j++){ 
     System.out.print(String.format("%" + columns[j].length() + "s", matrix[i][j])); 
    } 

    System.out.println(""); 
} 

输出:

   applianc around autonom averag bath bedroom car charg drive eat home hour hous includ kilomet kitchen lap larg live mile over per pet road room second sedan size test up updat veri water 
sentence 1:  0  0  1  0 0  0 0  0  0 0 0 1 0  0  0  0 0 0 0 1 0 1 0 1 0  0  1 0 0 1  0 0  0 
sentence 2:  0  0  0  0 0  0 1  0  0 0 0 2 0  0  1  0 0 0 0 1 0 2 0 0 0  1  0 0 0 0  0 0  0 
sentence 3:  0  0  0  0 1  1 0  0  0 1 1 0 0  0  0  1 0 1 0 0 0 0 0 0 3  0  0 1 0 0  0 0  0 
sentence 4:  0  1  0  0 0  0 0  1  0 0 0 0 0  0  1  0 0 0 0 1 0 0 0 1 0  0  0 0 1 0  0 0  0 
sentence 5:  0  0  0  0 0  1 0  0  0 0 1 0 0  0  0  0 0 1 0 0 0 0 0 0 2  0  0 0 0 0  0 0  0 
sentence 6:  0  0  0  0 0  0 1  1  0 0 0 0 0  0  1  0 0 0 0 1 0 1 0 0 0  0  0 0 0 1  0 0  0 
sentence 7:  0  1  1  0 0  0 0  0  0 0 0 2 0  0  1  0 1 0 0 1 0 2 0 0 0  0  1 0 0 0  0 0  0 
sentence 8:  1  0  0  0 0  0 0  0  0 0 0 0 0  1  0  0 0 0 0 0 0 0 1 0 0  0  0 0 0 0  0 0  1 
sentence 9:  0  0  0  0 1  1 0  0  0 0 1 0 1  0  0  0 0 0 0 0 0 0 0 0 1  0  0 0 0 0  0 0  0 
sentence 10:  0  0  0  0 0  0 0  0  0 0 0 0 0  0  0  0 0 0 0 0 0 0 1 0 0  0  0 0 0 0  0 0  0 
sentence 11:  0  0  1  0 0  0 1  0  1 0 0 0 0  0  1  0 0 0 0 0 0 0 0 1 0  0  0 0 1 0  0 0  0 
sentence 12:  0  0  0  0 0  2 0  0  0 0 0 0 0  0  0  0 0 1 0 0 0 0 0 0 2  0  0 3 0 0  0 0  0 
sentence 13:  0  0  1  0 0  0 0  0  0 0 0 0 0  0  1  0 0 0 0 1 1 0 0 0 0  0  0 0 0 0  0 0  0 
sentence 14:  0  0  0  0 0  0 0  0  0 0 0 0 1  0  0  1 0 0 0 0 0 0 0 0 0  0  0 0 0 2  2 0  0 
sentence 15:  0  0  1  0 0  0 1  0  0 0 0 0 0  0  0  0 0 0 0 0 0 0 0 1 0  0  0 0 0 0  0 0  0 
sentence 16:  0  0  0  1 0  0 0  0  0 0 0 0 0  0  0  0 0 0 0 2 1 1 0 0 0  0  1 0 0 0  0 0  0 
sentence 17:  0  0  0  0 1  1 0  0  0 0 1 0 0  0  0  0 0 0 0 0 0 0 0 0 1  0  0 0 0 0  0 0  0 
sentence 18:  1  0  0  0 0  0 0  0  0 1 0 0 1  0  0  2 0 0 0 0 0 0 0 0 0  0  0 0 0 1  1 0  0 
sentence 19:  0  1  0  1 0  0 1  0  0 0 0 1 0  0  0  0 1 0 0 2 0 1 0 1 0  1  0 0 0 0  0 0  0 
sentence 20:  0  0  0  0 1  1 0  0  0 2 0 0 1  1  0  1 0 0 0 0 0 0 0 0 3  0  0 0 0 0  0 0  1 
+0

实际上它甚至可能是更好的具有相同的列宽,即相同的字符数,使“applianc “和”向上“具有相同的宽度 – bahamout