我有一个方法将名称和它们的分数保存到文本文件中。现在我做了一个'高分'的按钮,调用一个从高分中读取文本文件的方法。现在这个输出非常难看,所以我想把名字放在一个文本区域中,并将分数放到另一个文本区域中,这样它们就会被均匀分开。Java:将字符串拆分并将它们放到文本区域的
我该怎么做?
预先感谢
我的电流输出:
我有一个方法将名称和它们的分数保存到文本文件中。现在我做了一个'高分'的按钮,调用一个从高分中读取文本文件的方法。现在这个输出非常难看,所以我想把名字放在一个文本区域中,并将分数放到另一个文本区域中,这样它们就会被均匀分开。Java:将字符串拆分并将它们放到文本区域的
我该怎么做?
预先感谢
我的电流输出:
假设该文件的格式是这样的:
NAME; SCORE \ n
中文别名; OTHERSCORE \ n
...
你可以这样做:
BufferedReader br = new BufferedReader(...); // Initialize a buffered reader reading from that text file.
String line;
while ((line = br.readLine() != null) {
String name = line.split(";")[0];
String score = line.split(";")[1];
namesTextArea.append(name + "\n");
scoresTextArea.append(score + "\n");
}
我希望它有帮助!
这听起来像你真正想要的是一种处理你的名字和分数对齐的方法。您可以使用Java的支持format strings自动垫名场,并给它一个最大宽度,从而使各项你的分数在同一列:
String.format("%-20.20s %s", "Name", "Score")
这将垫每个名称,使其20个字符如果超过20个字符,则也会截断该名称,以免它溢出到分数区域。您可以将上面的20
更改为您认为合理的宽度。
为什么'JTextArea'?我认为使用'JLabel's与适当的布局管理器结合可以得到你想要的东西(例如,使用'BoxLayout'嵌套组件的'FlowLayout')。另外,请包括[sscce](http://sscce.org)。 – mre 2013-03-14 15:12:53
很难说出你实际要求的是什么。请尝试将问题归结为本质,然后再询问。 – kritzikratzi 2013-03-14 15:15:38