如何将特定列的文本存储在数组列表中?

How to store text from a certain column in an arraylist?

我只想存储 .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;
    }        
}   

您需要做的就是只需使用空格作为分隔符拆分每一行并保留第一个标记,然后对每一行重复:

这可以使用以下使用拆分函数的代码行来实现(请在此处查看更多信息 http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)

line.split("\s+");

然后,第零 (0) 个元素包含第一列,如您所愿

你可以正常工作了 class:

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

您可以提取第一行前面的部分 space:

userNames.add(line.substring(0, line.indexOf(' ') ));