java - 当文件扫描器扫描超过 1 个真实语句时,如何将变量合并为一个变量
问题描述
我正在创建一个简单的 Java 程序,但我遇到了一些我没有想到的东西。长话短说,我在我的桌面上创建了一个 word 文件,每一行都有一个数字后跟一个字母。相似的字母具有相同的起始编号。所以我用我在互联网上找到的一些调整实现了一些代码。代码基本上是“如果该行以 001 开头,则 001 旁边的字母/单词将是变量 001Letters”。我使用 java.util.Scanner,我的起始代码是:
while (scanner.hasNext()) {
String lineOfText = scanner.nextLine();
if (lineOfText.startsWith("001")) {
lineOfText = lineOfText.substring(3);
System.out.println(lineOfText);
001Letters.setText(lineOfText);
******//001Letters is the JLabel that is suppose // to show all letters within the 001 group******
}
}
A-好的。所以我的想法是所有前面有 001 的字母都将被合并。但相反,它只是给了我以 001 及其字母开头的最新行。如果我有 2+ 行以 001 开头,我怎样才能做到这一点,两个字母组合在一起,这样我就可以制作一个变量。一个例子:
001一
002 X
003乙
001 男
001 N
005 升
因此,当它计算并粘贴到我的 GUI 窗口时,它会显示“AM N”。
解决方案
在循环内部将每个值附加到一个字符串变量,并在循环完成后将此字符串值设置为Letters001
:
String line = "";
while (scanner.hasNext()) {
String lineOfText = scanner.nextLine();
if (lineOfText.startsWith("001")) {
lineOfText = lineOfText.substring(3);
System.out.println(lineOfText);
line += lineOfText + "<br>";
}
}
if (line.length() > 0) {
line = "<html>" + line.substring(0, line.length() - 4) + "</html>";
}
Letters001.setText(line);