Java:拆分字符串并将它们放入文本区域的

Posted

技术标签:

【中文标题】Java:拆分字符串并将它们放入文本区域的【英文标题】:Java: Split strings and put them into text area's 【发布时间】:2013-03-03 00:34:16 【问题描述】:

我有一种方法可以将名称及其分数保存到文本文件中。现在我做了一个“高分”按钮,调用一个从高分文本文件中读取的方法。现在这个输出很丑,所以我想把名字放在一个文本区域,把分数放在另一个文本区域,这样它们就被均匀地分开了。

我该怎么做?

提前致谢

我目前的输出:

【问题讨论】:

为什么是JTextArea?我认为将JLabels 与适当的布局管理器结合使用可以得到你想要的(例如FlowLayout 和使用BoxLayout 的嵌套组件)。另外,请附上sscce。 很难说出您实际在问什么。请尝试将您的问题归结为本质,然后再提问。 【参考方案1】:

假设文件的格式是这样的:

姓名;得分\n OTHERNAME;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");

希望对你有帮助!

【讨论】:

【参考方案2】:

听起来您真正想要的是一种处理姓名和分数对齐的方法。您可以使用 Java 对 format strings 的支持来自动填充 name 字段并为其指定最大宽度,从而将所有分数对齐在同一列中:

String.format("%-20.20s %s", "Name", "Score")

这将填充每个名称以使其宽度为 20 个字符,如果名称超过 20 个字符,也会截断该名称,使其不会溢出到乐谱区域。您可以将上面的20 更改为您认为合理的任何宽度。

【讨论】:

以上是关于Java:拆分字符串并将它们放入文本区域的的主要内容,如果未能解决你的问题,请参考以下文章

插入符号在文本区域的第一行吗?在最后一行?

文本区域的验证不起作用

为啥 IE 8 让光标跳到这个 JS 的文本区域的末尾?

拆分一个字符串并将其放入两个数组中

向 Django 添加文本区域的正确方法是啥?

文本区域的最大长度在 IE 中不起作用