我有一个包含用户信息的文本文件,以行形式用逗号分隔。我使用实验和研究的组合来尝试将每一行分成单独的信息片段(通过使用拆分函数),这些信息可以存储在数组中,然后搜索。使用代码,我在文本文件中的每个名称和用户名都重复了 4 次,我怎么不明白。我所能做的只是进一步混淆自己,但我所需要的只是从文本文件中提取每一行,将其拆分为 4 条单独的信息,并以某种方式将它们存储在内存中以进行搜索。我拥有的代码是;
package assignment;
import java.io.*;
public class readUser {
public void read()
{
try{
FileInputStream propertyFile = new FileInputStream("AddUser.txt");
DataInputStream input = new DataInputStream(propertyFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String line;
while ((line = reader.readLine()) != null) {
String[] items = line.split(",");
String[][] usersArray = new String [5][2];
int i;
for (String item : items) {
for (i = 0; i<items.length; i++){
if (i == 0) {
System.out.println("Name: " + items[i]);
} else if (i == 1) {
System.out.println("Username: " + items[i]);
}
}
}
//System.out.println(line);
}
input.close();
}
catch (Exception e){
System.err.println("Error: " + e.getMessage());
}
}
}
感谢您对此的任何建议
看看你的代码分解,问题变得很明显:
for each line in property file (while loop):
for each item in line:
for each item in line:
if item 0 print username
else if item 1 print username
endif
end loop
end loop
end loop
您的代码基本上是遍历items
列表两次。 请记住,在 Java 中,以下两个代码片段是等效的 - 因为它们都迭代数组或集合的值。
一个
for (String item : items) {...}
乙
for (int i = 0; i < items.length; i++) {
String item = items[i];
....
}