我想根据行是否包含问号将文本文件的元素分成不同的数组。这是我所知道的。

    Scanner inScan = new Scanner(System.in);

    String file_name;
    System.out.print("What is the full file path name?\n>>");
    file_name = inScan.next();

    Scanner fScan = new Scanner(new File(file_name));
    ArrayList<String> Questions = new ArrayList();
    ArrayList<String> Other = new ArrayList();

    while (fScan.hasNextLine())
    {
        if(fScan.nextLine.indexOf("?"))
        {
            Questions.add(fScan.nextLine());
        }

        Other.add(fScan.nextLine());
    }

最佳答案

那里有很多问题


nextLine()实际上返回下一行并在扫描仪上移动,因此您需要阅读一次
indexOf返回一个int,而不是布尔值,我想您对C ++的使用更多了吗?您可以改用以下任何一种方法:

indexOf(“?”)> = 0
contains(“?”)
matchs(“ \?”)等

请遵循Java的方法,并为驼峰使用camelCase ...




public static void main(String[] args) throws FileNotFoundException {

    Scanner scanner = new Scanner(new File("foo.txt"));
    List<String> questions = new ArrayList<String>();
    List<String> other = new ArrayList<String>();
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        if (line.contains("?")) {
            questions.add(line);
        } else {
            other.add(line);
        }
    }
    System.out.println(questions);
    System.out.println(other);
}


foo.txt

line without question mark
line with question mark?
another line

关于java - 使用indexOf读入文本文件行以分离数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13188635/

10-10 19:02
查看更多