Я читаю последовательный буфер с помощью метода readLine(). Строка, возвращаемая readLine(), находится в формате «str1: str2». В цикле в то время, когда я использую Readline номер() раз для ответа команды последовательного порта я получаю странный результат, как это:Форматирование строк в java
String1 : string1
SString11 : String2
StringString2 : String23
String4 : String5
Но мне нужен выход форматированный, как показано ниже
String1 : string1
SString11 : String2
StringString2 : String23
String4 : String5
I использовал метод split в строке и получил две строки, разделенные разделителем как ':'. Но теперь мне нужно добавить String1 с пробелами, чтобы выровнять все двоеточия.
Прошу прощения, если моя проблема объясняется странно. Но если кто-нибудь понял проблему, можете ли вы предложить, как это сделать?
Я использовал String.format() и работал. Но есть и другая проблема. Проблема в том, что я помещаю строку вывода в экземпляр JTextArea. Я выбрал шрифт как Arial. При печати, например, String.format («% - 30s:% 30s», temp [0], temp [1]); Он печатает как Название изображения: прошивка Linux Linux Версия: 2.1.1.17 В приведенных выше двух строках «I» в слове «Изображение» и «V» в слове Версия имеет разную ширину в текстовой области. Поэтому, хотя я использую 30 символов, двоеточия не выравниваются. Есть ли решение для этого? –
взгляните на java.awt.FontMetrics (может быть ... прошло много времени с тех пор, как я заботился о ширине текстового поля/области :-) – TofuBeer
Вам нужно использовать шрифт, такой как Courier, это называется шрифт «моноширинный», означающий, что все символы имеют равную ширину. Это, конечно же, означает, что если вы выровняете символы в строке, выровняете их также и на выводе. –