我正在用readLine()方法读取串行缓冲区。 readLine()返回的字符串格式为“str1:str2”。在while循环,当我用的时间的readLine()号串口命令的响应,我得到奇怪的输出是这样的:在java中格式化字符串
String1 : string1
SString11 : String2
StringString2 : String23
String4 : String5
但我需要格式化如下
String1 : string1
SString11 : String2
StringString2 : String23
String4 : String5
我输出在字符串上使用split方法,并使用分隔符将两个字符串分隔为':'。但现在我需要用空格来追加String1以对齐所有的冒号。
我很抱歉如果我的问题解释很奇怪。但是,如果有人了解这个问题,你可以建议如何去做?
我用String.format()和它的工作。但另一个问题在那里。问题是我把输出字符串放在一个JTextArea实例中。我选择了Arial字体。当打印像这样String.format(“% - 30s:%30s”,temp [0],temp [1]); 它打印如 图像名称:基本Linux固件 版本:2.1.1.17 在上述两行中,单词Image中的“I”和单词Version中的“V”在文本区域具有不同的宽度。所以,即使我使用30个字符的字符串冒号不对齐。有没有解决方案? – 2009-12-14 08:04:13
看一看java.awt.FontMetrics(可能......自从我关心文本字段/区域的宽度以来,已经很长时间了:)-) – TofuBeer 2009-12-14 09:04:21
您需要使用诸如Courier这样的字体,这被称为一个'monospaced'字体意味着所有的字符都有相同的宽度。这当然意味着如果字符在字符串中对齐,那么它也会在输出上对齐。 – 2009-12-14 09:33:09