2014-10-07 1 views
1

출력을 다음과 같이 표시하고 싶습니다.Java에서 arraylist의 출력 열 서식 지정하기

ID  Name     Club   Goals 
1234 Christiano Ronaldo Real Madrid  42 
321  Rooney    United   32 
23122 Angel Di Maria  United   45 

이것은 내가 지금까지 시도한 것입니다,하지만 작동하지 않습니다 :

for (Player p : players) 
{ 
    System.out.println(p.getID() + "\t" + p.getName() + "\t" 
      + p.getClub() + "\t" + p.getGoals()); 
    total ++; 
} 

탭처럼 행동 \t 때문에, 클럽에서 데이터를 항상 혼란스러워. 나는 모든 데이터가 ArrayList입니다.

+1

각 필드 값의 길이를 확인하고 완료 할 공백을 추가하십시오. –

답변

4

System.out.format을 사용해야합니다.

이 같은 필드의 길이를 제어 할 수 있습니다

System.out.format("%32s%10d%16s", string1, int1, string2); 

이 패드 문자열 1, INT1, 1과 문자열 32, 10, 16자를 각각.

구문에 대한 자세한 내용은 java.util.Formatter의 Javadocs를 참조하십시오 (System.out.format는 내부적으로 Formatter를 사용함).

참고로, 참고로 Player 클래스의 ToString() 메서드를 재정의하고이 클래스에서 자신을 나타내는 방법을 정의 해보십시오. 이것은 중복 된 코드를 할 필요가 저장하고 당신은 말할 수 :

p.ToString()

과 그것이 (ID, 이름, 클럽, 목표)이 무엇인지 인쇄됩니다.

+0

출력 길이를 모르는 경우 무엇을할까요? – msrd0

+0

데이터베이스와 마찬가지로 변수에 최대 길이를 설정해야합니다. 예 : 이름이 26 자이고 25를 지정하는 경우 정의한 형식에 맞게 이름을 줄이는 방법을 구현해야합니다. –

+0

그게 효과가! 고마워! – unrivalled

관련 문제