我只想存储.txt文件中包含的第一列。
hello28 23232
hello27 23232
hello25 12321
这是我到目前为止的代码,但目前它存储文件中的每一行;如何才能使它只存储第一列(包含用户用户名的那一列)?
public static boolean checkUserExists(String userName){
String line = "";
ArrayList <String> userNames = new ArrayList <String>();
try{
FileReader fr = new FileReader("investments.txt");
BufferedReader br = new BufferedReader(fr);
while((line = br.readLine()) != null) {
userNames.add(line);
}
}
catch(IOException e){
System.out.println("File not found!");
}
if (userNames.contains(userName)){
return false;
}
else{
return true;
}
}
答案 0 :(得分:1)
您需要做的就是 只是使用空格作为分隔符来分割每一行并保留第一个标记,并为每一行重复该行:
这可以使用以下使用split函数的代码行来实现(请参阅此处http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)更多信息)
line.split("\\s+");
然后,第零个(0)元素包含第一列,如您所愿
你去了一个完全工作的班级:
import java.io.IOException;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
class white {
public static void main(String[] args) {
String line = "";
String username = "";
ArrayList <String> userNames = new ArrayList <String>();
try{
FileReader fr = new FileReader("investments.txt");
BufferedReader br = new BufferedReader(fr);
while((line = br.readLine()) != null) {
line.split("\\s+");
userNames.add(line.split("\\s+")[0]);
System.out.println(line.split("\\s+")[0]);
}
}
catch(IOException e){
System.out.println("File not found!");
}
}
}
<强>输出:强>
hello28
hello27
hello25
答案 1 :(得分:1)
您可以提取第一个空格之前的部分行:
userNames.add(line.substring(0, line.indexOf(' ') ));