gpt4 book ai didi

java - 缺线?从.txt文件读取字符串并放入数组(java)

转载 作者:行者123 更新时间:2023-11-30 03:45:21 25 4
gpt4 key购买 nike

抱歉,我对 Java 还是新手,基本上我的最终结果是要求输入'pin 代码',并且该 pin 代码将位于文本文档中,但我什至不知道如何设置将它们放入下面的数组中?我的数组的输出仍然为 null,而不是文档中的文本。还有一个问题就是即将出现的问题。

文本文档与 Java 类放在同一文件夹中,我应该创建完整路径吗?

文本中只有两项,例如我希望每一项分别位于 listArray[0] 和 listArray[1] 中

如果文档内的字面意思是:

1111,约翰·多伊,5000/n*输入*第2222章 格伦约翰逊,4000

我需要左侧的引脚编号为数组[0],名称为数组[1]

这是事后才想到的,没有考虑过拥有多个帐户

这是我迄今为止尝试过的:

public class Confirmation extends ATMrunner {
public static void pinConfirm() {
String[] listArray = new String[2];
try {
BufferedReader br = new BufferedReader(new FileReader("C:\Users\workspace\TellerMachine\src\bankATM\userlist.txt"));
String line = "";
while ((line = br.readLine()) != null) {
for (int i = 0; i <= 1; i++) {
listArray[i] = line;
}
}
br.close();
} catch (IOException ioe) {
System.out.println("File may be corrupted; please contact admin");
}
System.out.println(listArray[0]);
System.out.println(listArray[1]);
}
}

感谢一些帮助!

最佳答案

好的,首先要做的事情是:

The fullpath gives me an invalid escape sequence error.

这是因为在Java中,实际上有很多编程语言;声明 String 时,可以使用一些特殊字符;例如“换行”字符 \n,它是一个单个字符,告诉正在读取字符串数据的任何内容,在该点应该有一个新行。您可以阅读有关这些“转义序列”的更多信息 in this Wikipedia article .

当您声明绝对路径时,其中有多个 \ 字符,这些字符用于表示这些特殊字符。因此,对于\Users,它被视为您正在尝试输入值\U的“特殊字符”,而实际上没有。为了解决这个问题;只需将所有 \ 字符替换为 \\

其次,在读取文件时的 while(和 for)循环中; while 循环的每次迭代都会获得文件的新行。

(line = br.readLine()) != null

在此之后,您将迭代字符串数组“listArray”并将每个元素设置为当前行。

for (int i = 0; i <= 1; i++) {
listArray[i] = line;
}

这里出现的问题是,您将读取文件的第一行,然后将数组的两个元素设置为该行。然后你将读取文件的另一行;并将所有元素设置到该行。然后...

要改变这一点,我建议使用如下技术:

int index = 0;
String line = "";
while((line = br.readLine()) != null) {
listArray[index] = line;
index++;
}

现在,这个 while 循环将执行与您在循环中相同的操作,但是对于这个;您还可以跟踪数组的当前索引。 while 循环的每个循环将读取一行并将当前索引分配给该行,然后它将递增索引。这种方法的问题是,如果您的文件包含超过 2 行,则 while 循环将第三次运行并尝试在数组上分配越界索引。要更改此设置,您还可以尝试在尝试分配索引之前检查索引是否在数组范围内,如下所示:

while((line = br.readLine()) != null && index < listArray.length)

当然有更好的方法来完成这一切,但是所有这些应该让您的应用程序正常工作。

关于java - 缺线?从.txt文件读取字符串并放入数组(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25886233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com