2013-11-03 2 views
0

enter image description here 안녕하세요, NetBeans를 사용하여 Java의 콘솔 창에 출력을 정렬하려고합니다.콘솔 출력 정렬

ATM 나는 arraylist에서 MP3 트랙 (모음) 모음을 가지고 있습니다. 사용자는 정렬 된 목록이 콘솔을 통해 정렬 된 후 아티스트, 앨범 & 트랙 이름 등으로 트랙을 정렬 할 수 있습니다.

System.out.println (vector);

내 MP3Track 클래스 재정의 toString() :

@Override 
public String toString(){ 
    return(String.format("Track No: %-8s Track Title: %-25s Artist Name: %-15s Album Name: %-20s Track Length: %-10s", trackNo , trackTitle, artistName, albumName, trackLength + "\n")); 

}

이 솔루션은 라인과 첫 번째와 마지막 자리의 출력은 [] 첫 번째 라인을 제외한 모든 작동합니다. 나는 모든 라인을 정렬하고 시작과 끝 모두에서 []를 제거하고 싶습니다. 저는 소프트웨어 엔지니어링 학생이자 Java에서의 첫 번째 과제에서 1 년째입니다. 그래서 나는 미숙 한 일을 변명하십시오!

여기에 몇 가지 제안을 보내 주시면 감사하겠습니다. 사전에

많은 감사 ..

+1

현재 출력과 원하는 출력을 게시/보여주는 고려하십시오. –

답변

2

당신은 그것의 String 표현과 Collection의 자바의 String 표현을 얻을 수

System.out.println(vector); 

가 호출 vectortoString() 방법을 사용하여 벡터를 인쇄이 같은 포맷 :

[element1.toString(), element2.toString, ... ] 

벡터를 반복하여 인쇄 할 수 있습니다.(210 개)의 :

for (MP3Track mp3Track : vector) { 
    System.out.println(mp3Track); 
} 

그리고 MP3Track 당신의 문자열 표현의 끝에 \n을 제거, 그것은 그런 식으로 좋을 것입니다.

또는 Vector 클래스의 하위 클래스를 만들고 그 toString() 메서드를 재정의하고 사용합니다.하지만 과도 할 것입니다.

+0

좋은 일을 해냈습니다 ... – TripVoltage

0

최종 사용자에게 데이터를 표시하려면 toString()에 의존해서는 안됩니다. toString은 디버그를 목적으로합니다. 배열의 toString이 인쇄하기 때문에 중괄호가 있습니다.

사용자에게 데이터를 표시하려면 외부 뷰어 클래스를 사용해야합니다.이 뷰어 클래스는 인쇄해야하는 것처럼 인쇄합니다. JavaSE 컬렉션에 위임하고 toString을 무시하는 List 구현을 만들 수 있지만이 방법을 사용하는 것을 정말 싫어합니다. 같은

뭔가 :

public class TrackViewer { 
    private static final String FORMAT 
      = "Track No: %-8s Track Title: %-25s " 
      + "Artist Name: %-15s Album Name: %-20s " 
      + "Track Length: %-10s\n"; 

    private String getTrackLine(Track t) { 
     return String.format(FORMAT, 
       t.getTrackNo(), 
       t.getTrackTitle(), 
       t.getArtistName(), 
       t.getAlbumName(), 
       t.getTrackLength()); 
    } 

    public void listTracks(Iterable<Track> tracks) { 
     StringBuilder bdr = new StringBuilder(); 

     for (Track t : tracks) { 
      bdr.append(getTrackLine(t)); 
     } 

     System.out.print(bdr.toString()); 
    } 
} 
+0

고마워, 미래에이 솔루션을 고려해보십시오 ... – TripVoltage