如何在Java中正确创建制表符分隔的文本文件
我正在尝试创建一个标签删除的文本文件,以便输出显示为列,但由于某些原因,标签显示在不同的位置。这是由于数据值大小不同造成的 下面是我如何构建行和列的如何在Java中正确创建制表符分隔的文本文件,java,text,formatting,string-formatting,Java,Text,Formatting,String Formatting,我正在尝试创建一个标签删除的文本文件,以便输出显示为列,但由于某些原因,标签显示在不同的位置。这是由于数据值大小不同造成的 下面是我如何构建行和列的 output.append("|\t" + column1 + "\t\t\t:\t" + column2 +" \t\t\n"); 输出结果如下所示: | activeSessions : 0 | duplicates : 0 | expiredSessions
output.append("|\t" + column1 + "\t\t\t:\t" + column2 +" \t\t\n");
输出结果如下所示:
| activeSessions : 0
| duplicates : 0
| expiredSessions : 0
| rejectedSessions : 0
| sessionMaxAliveTime : 0
| sessionCounter : 0
正如您所看到的,第一列上具有较长文本条目的值会导致第二列稍微远离,即使两列由两个选项卡分隔。如何确保第二列位置在同一行上
谢谢制表符的宽度没有定义,取决于您用来显示文本的内容。如果要对齐列,请使用空格。例如,您可以使用
%10s
的格式与空格对齐。这与文件是否“正确”无关,而与数据的显示有关,这是一个单独的问题。考虑使用PrtFF(…)或String .Frand(…)或格式化程序类的其他变体来格式化显示的数据。或者,如果是GUI,则显示在JTable中。您必须将字符串的长度设置为25个字符,并用x个空格填充差异x=(25-column1.length)
。不要忘记在文本编辑器中使用单空格字体
要填充字符串,可以使用以下方法:
请参阅以获取一些填充代码,并将列内容填充到任意长度
import org.apache.commons.lang.StringUtils;
output.append("|\t" + StringUtils.rightPad(column1, 25) + "\t\t\t:\t" + StringUtils.rightPad(column2, 15) +" \t\t\n");