在java中格式化字符串

我正在使用readLine()方法读取串行缓冲区。 readLine()返回的字符串格式为“str1:str2”。 在while循环中,当我使用readLine()次数进行串口命令的响应时,我得到了奇怪的输出,如下所示:

String1 : string1 SString11 : String2 StringString2 : String23 String4 : String5 

但我需要输出格式如下

 String1 : string1 SString11 : String2 StringString2 : String23 String4 : String5 

我在字符串上使用了split方法,并将两个字符串用分隔符分隔为’:’。 但是现在我需要在String1上添加空格以对齐所有冒号。

我很抱歉如果我的问题解释很奇怪。 但如果有人理解这个问题,请你建议怎么做?

看看System.out.printf

实现此目的的最简单方法是使用System.out.format() 。 这使您可以使用C printf样式格式说明符。 一个例子:

 System.out.format("%-5s:%10s\n", "Name", "Nemo"); System.out.format("%-5s:%10d\n", "Age", 120); 

这将输出:

 Name : Nemo Age : 120 

另请参阅Formatter类的文档以了解有关格式字符串语法的更多信息。

System.out.format(“%30s:%s”,str1,str2);

将打印第一个字符串,其固定宽度为30个字符。