Wyświetlanie danych w równych kolumnach

0

Chciałabym wyświetlić dane w równych kolumnach.
Jest w tym problem że mam dane o różnej długości i tabulator się do tego nie nadaje.
Są jakieś inne sposoby? Podanie punktu od którego ma zacząć?

czyli np:
Imię Nazwisko
Jan Kowalski

a nie np:
Imię Nazwisko
Kunegunda Zamojska

0

Fajnie by było gdybyś powiedział jeszcze gdzie chcesz te dane wyświetlić..

0

Poczytaj o printf, można wyświetlać na konkretnej pozycji.

0

Jeśli chcesz wypisywać na konsoli, to jak napisał @szweszwe, metoda printf. Jeśli program ma interfejs graficzny, to metoda format z klasy String. Metodę format możesz użyć również w programie konsolowym.

0

A do bardziej zaawansowanej zabawy w konsoli (np. rysowanie obramowań) użyj biblioteki JCurses

0

Właśnie w konsoli chciałam wyświetlać dane.
Czytam i czytam o printf ale nie umiem się doszukać żeby wyświetlało dla zwykłego tekstu w kolumnach :(

0
System.out.printf("%30s\n","czytam i nic nie rozumiem");
0

Ale to i tak wyświetla mi tylko dane z przesunięciem, a nie dopasowuje do danych :(((

0
                    System.out.print(((Node) nW.item(0)).getNodeValue());
                    System.out.printf("%10s\t",((Node) prz.item(0)).getNodeValue() + ((Node) kodW.item(0)).getNodeValue());
                    System.out.printf("%10s\t",((Node) kursS.item(0)).getNodeValue());
                    System.out.println();
                    
0

Spróbuj pobawić się minusikiem:

"%-10s"
0

A po co u Ciebie jest to "\t"? Nie używaj też konkatenacji.

0

I z minusem i bez \t i bez konkatenacji wyświetla mi tak :

Element główny: tabela_kursow
nazwa_waluty: kod_waluty kurs_sredni
bat (Tajlandia) 1THB 0,0931
dolar amerykański 1USD 3,0596
dolar australijski 1AUD 2,6911
dolar Hongkongu 1HKD 0,3945
dolar kanadyjski 1CAD 2,7949

1

Na szybkości:
Koteczku skopiuj to sobie i zobacz bo jak nie o to chodzi to ja nie wiem.

System.out.printf("%-20s%-20s%-20s\n","nazwa waluty", "kod waluty", "kurs sredni");
System.out.printf("%-20s%-20s%-20s\n","bat", "1THB", "0.0931");
System.out.printf("%-20s%-20s%-20s\n","dolar amerykanski", "1USD", "3.051");
System.out.printf("%-20s%-20s%-20s\n","dolar australijski", "1AUD", "2.6911");
1

Kod powinien wyglądać jakoś tak (jeśli wszystkie wyświetlane wartości są typu String):

System.out.printf("%-20s %-10s %-10s%\n",((Node) nW.item(0)).getNodeValue(),((Node) prz.item(0)).getNodeValue() + ((Node) kodW.item(0)).getNodeValue(),((Node) kursS.item(0)).getNodeValue());
0

Działa ! Bardzo dziękuję za pomoc <3

1 użytkowników online, w tym zalogowanych: 0, gości: 1