我有一个包含以下内容的文本文件:
First Name : Javier Last Name : Smith E-mail : smith@.com Password: jsmith Date of Birth: Jan 1, 1987
First Name : Jade Last Name : Tux E-mail : nicholson@.com Password: jade123 Date of Birth: Jan 1, 1954
First Name : Bruce Last Name : Porto E-mail : bruce_porto@.com Password: br11 Date of Birth: Feb 25, 1946
我想在第一行上获得字符串Javier,Smith,smith @ .com,jsmith等等,并将这些字符串存储在person类型的字符串(字符串,字符串,字符串,字符串)中并执行相同的操作每一行。
到目前为止,这是我的代码:
try
{
searchUser = new Scanner(new FileInputStream("src/users.txt")).useDelimiter(":");
String storeFirst = "", storeLast = "", storeEmail = "", storePassword = "";
usersArray = new ArrayList<Person>();
String line = null;
while(searchUser.hasNextLine())
{
line = searchUser.nextLine();
storeFirst = searchUser.next();
storeLast = searchUser.next();
storeEmail = searchUser.next();
storePassword = searchUser.next();
line = searchUser.nextLine();
usersArray.add(new Person(storeFirst, storeLast, storeEmail, storePassword));
for(Person ae : usersArray)
{
System.out.println(ae.toString());
}
System.out.println(storeFirst);
System.out.println(storeLast);
System.out.println(storeEmail);
System.out.println(storePassword);
}
searchUser.close();
}
答案 0 :(得分:1)
更改while循环以首先读取并填充数组,然后将打印循环设置为:
while(searchUser.hasNextLine()){
//read the tokens first ignoring tag tokens
searchUser.next();//ignore "First Name"
storeFirst = searchUser.next().split(" ")[0];//split the 3 words and take 1st
storeLast = searchUser.next().split(" ")[0];//split the 2 words and take 1st
storeEmail = searchUser.next().split(" ")[0];//split the 2 words and take 1st
storePassword = searchUser.next().split(" ")[0];//split the 2 words and take 1st
//read and ignore remaining text including the new line character in the end
searchUser.nextLine();
Person person = new Person(storeFirst, storeLast, storeEmail, storePassword);
usersArray.add(person);
}
现在打印代码为:
for(Person ae : usersArray){
System.out.println(ae.toString());
}