Nondikass Ответов: 2

Java - как установить длину строки


Я хочу установить длину своей строки, так как хочу, чтобы различные элементы моего ArrayList, отображаемые JList, были правильно выровнены.

Вот образ этой проблемы: https://prnt.sc/k7vg91

Что я уже пробовал:

Я попытался использовать этот цикл while, но элемент в JList не выстраивается должным образом.
nameBoisson-это строка, которую я использую.

public String toString()
    {
        while (nameBoisson.length() <49)
        {
            nameBoisson = nameBoisson + " ";
        }
        return nameBoisson +prixDeVente +" € " +conditionnement +"L";
    }

2 Ответов

Рейтинг:
2

CPallini

Вы можете использовать String.format для этой цели см., например:: Примеры Java String.format[^].


Рейтинг:
14

Jochen Arndt

Вы должны использовать шрифт фиксированной ширины (Моноширинный шрифт - Википедия[^]) любить Курьер чтобы показать правильно выровненные текстовые таблицы. Способ выбора такового зависит от используемого метода вывода.

При этом используется шрифт фиксированной ширины:

Item     Price
AnItem   €    13.49
Another  €   127.80
То же самое с использованием пропорционального шрифта:
Item     Price
AnItem   €    13.49
Another  €   127.80

[РЕДАКТИРОВАТЬ]
Проглядели JList.
Чтобы установить шрифт используйте что-то вроде
myList.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12));
Для форматирования строки линии String.format как было предложено в решении 1:
String strLine = String.format("%-49s% 10.2f € ", nameBoisson, prixDevente);
Здесь %-49s выводит строку выровненную по левому краю с конечными пробелами общей длиной до 49 символов и % 10.2f выводит значение с плавающей запятой, выровненное по правому краю, общей длиной 10 символов, 2 цифры после десятичной точки и начальный пробел для положительных значений.
[/РЕДАКТИРОВАТЬ]