我正在用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