fork download
  1. import java.text.NumberFormat;
  2. import java.util.Arrays;
  3.  
  4. class Test {
  5. public static String toTableString(int data[][]) {
  6. int max = 0;
  7. for (int i = 0; i < data.length; i++)
  8. for (int is : data[i])
  9. if (max < is)
  10. max = is;
  11.  
  12. return toTableString(data, Integer.toString(max).length());
  13. }
  14.  
  15. public static String toTableString(int data[][], int nrLen) {
  16. StringBuilder sb = new StringBuilder();
  17. int max = 0;
  18. NumberFormat nf = NumberFormat.getIntegerInstance();
  19. nf.setMaximumIntegerDigits(nrLen);
  20. nf.setMinimumIntegerDigits(nrLen);
  21. nf.setGroupingUsed(false);
  22.  
  23. for (int i = 0; i < data.length; i++)
  24. if (max < data[i].length)
  25. max = data[i].length;
  26.  
  27. char line[] = new char[(1 + nf.format(0).length()) * (1 + max)];
  28. Arrays.fill(line, '—');
  29.  
  30. sb.append(nf.format(0).replace("0", " ")).append('|').append(' ');
  31. for (int i = 0; i < max; i++)
  32. sb.append(nf.format(i)).append(' ');
  33.  
  34. sb.append("\n").append(line);
  35. for (int i = 0; i < data.length; i++) {
  36. sb.append("\n").append(nf.format(i)).append('|').append(' ');
  37. for (int c : data[i])
  38. sb.append(nf.format(c)).append(' ');
  39. }
  40.  
  41. return sb.toString();
  42. }
  43.  
  44. public static void main(String[] args) {
  45. System.out.println(toTableString(new int[][] { { 1, 2, 3, 4, 5, 6 },
  46. { 2, 3, 4, 5, 6, 1 }, { 3, 4, 5, 6, 1, 2 },
  47. { 4, 5, 6, 1, 2, 3 }, { 5, 6, 1, 2, 3, 4 },
  48. { 6, 1, 2, 3, 4, 5 } }));
  49. System.out.println();
  50. System.out.println(toTableString(new int[][] { { 1 }, { 2, 3 },
  51. { 3, 4, 5 }, { 4, 5, 6, 1 }, { 5, 6, 1, 2, 3 },
  52. { 6, 1, 2, 3, 4, 5 } }));
  53. System.out.println();
  54. System.out.println(toTableString(new int[][] { { 1 }, { 20, 300 },
  55. { 3000, 40000, 50000 }}));
  56. }
  57.  
  58. }
Success #stdin #stdout 0.06s 213440KB
stdin
Standard input is empty
stdout
 | 0 1 2 3 4 5 
——————————————
0| 1 2 3 4 5 6 
1| 2 3 4 5 6 1 
2| 3 4 5 6 1 2 
3| 4 5 6 1 2 3 
4| 5 6 1 2 3 4 
5| 6 1 2 3 4 5 

 | 0 1 2 3 4 5 
——————————————
0| 1 
1| 2 3 
2| 3 4 5 
3| 4 5 6 1 
4| 5 6 1 2 3 
5| 6 1 2 3 4 5 

     | 00000 00001 00002 
————————————————————————
00000| 00001 
00001| 00020 00300 
00002| 03000 40000 50000