gpt4 book ai didi

java - 读取文件以将其数据存储在数组中时出错

转载 作者:行者123 更新时间:2023-11-30 07:46:06 24 4
gpt4 key购买 nike

我正在编写的程序是用Java编写的。我试图让我的程序读取文件“name.txt”并将文本文件的值存储在数组中。

到目前为止,我正在使用一个将在我的主程序中读取的文本文件,一个名为 People.java 的服务类,它将用作我的程序的模板,以及一个名为 Names.java 的主程序,它将读取文本文件并将其值存储到数组中。

名称.txt:

John!Doe
Jane!Doe
Mike!Smith
John!Smith
George!Smith

People.java:

public class People
{
String firstname = " ";
String lastname = " ";

public People()
{
firstname = "First Name";
lastname = "Last Name";
}

public People(String firnam, String lasnam)
{
firstname = firnam;
lastname = lasnam;
}

public String toString()
{
String str = firstname+" "+lastname;

return str;
}

}

名称.java:

import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Names
{
public static void main(String[]args)
{
String a = " ";
String b = "empty";
String c = "empty";
int counter = 0;


People[]peoplearray=new People[5];

try
{
File names = new File("name.txt");
Scanner read = new Scanner(names);

while(read.hasNext())
{
a = read.next();
StringTokenizer token = new StringTokenizer("!", a);

while(token.hasMoreTokens())
{
b = token.nextToken();
c = token.nextToken();
People p = new People(b,c);
peoplearray[counter]=p;
++counter;
}
}
}

catch(IOException ioe1)
{
System.out.println("There was a problem reading the file.");
}

System.out.println(peoplearray[0]);

}
}

正如我在程序中所示,我尝试打印 peoplearray[0] 的值,但当我这样做时,我的输出显示为:“null”。

如果程序正常工作,peoplearray[0] 的值应该是“John Doe”,因为这些是“names.txt”中的适当值

peoplearray[0] 的值应该为 null 吗?如果没有,我可以做什么来解决这个问题?谢谢!

最佳答案

你的论点顺序是错误的:

StringTokenizer token = new StringTokenizer("!", a);

根据API constructor

public StringTokenizer(String str, String delim)

使用

StringTokenizer token = new StringTokenizer(a,"!");

关于java - 读取文件以将其数据存储在数组中时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943645/

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