2017-01-08 3 views
0

저는 프로그래밍 초보자이며 현재 Java로 반응 형 테이블을 작성하는 방법을 배우고 있습니다. 나는 내가 알아낼 도움이 필요하다고 생각되는 것을 발견했습니다. 설명하기 쉬운 예제를 사용하겠습니다.Java에서 반응 형 테이블을 만드는 방법은 무엇입니까?

Name  Score 
James  15 
Tom  20 
Rodriguez 13 

내가 그들을 다음 정렬하지만 만드는 "\의 t"어떻게 든 성공을 사용하고,

나는 2 개 배열,

String[] name = new String[] {"James","Tom","Rodriguez"}; 
Integer[] score = new Double[] {15,20,13}; 

을 가지고 있고 나는 이런 식으로 뭔가로 변환 할 조금 더 긴 이름을 추가하면 출력이 이렇게됩니다.

Name  Score 
James  15 
Tom  20 
Rodriguez Fernandes 13 

내 친구

System.out.printf를 사용하라고하지만 데이터가 큰 특히, 배열을 적용하는 방법을 잘 모르겠습니다. 누군가가 이런 식으로 테이블을 더 잘 포맷하는 방법을 알려줄 수 있습니까? 여기

public static void print(String[] names, Integer[] score){ 
    //Find the name with max length 
    int maxLength = Arrays.stream(names) 
     .mapToInt(String::length) 
     .max().getAsInt() + 2; 

    //Now, start the printing 
    System.out.println(String.format("%1$-" + maxLength + "s", "Name") + "Score"); 
    for(int i=0 ; i<names.length ; i++){ 
     System.out.println(String.format("%1$-" + maxLength + "s", names[i]) + score[i]); 
    } 
} 

, 내가 가진 모든 다른 이름을 인쇄하는 동안

답변

1

이 작업을 수행하려면 먼저 예를 들어, (최대 길이 마이너스 문자열 길이) 최대 길이로 string을 찾아 추가 할 공간이 필요합니다 최대 길이에 2을 추가하여 최대 길이의 이름 뒤에 두 개의 빈 공간을 표시합니다. 이는 main에서 호출 할 수 있습니다 (예 :

public static void main(String[] args) throws Exception{ 
    print(new String[]{"James","Tom","Rodriguez"}, new Integer[]{15,20,30}); 
} 
).
관련 문제