读入文本文件行以使用indexOf分隔数组

时间:2012-11-02 02:52:02

标签: java indexof

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

    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());
    }

1 个答案:

答案 0 :(得分:2)

那里有很多问题

  • nextLine()实际返回下一行并在扫描仪上移动,因此您需要阅读一次
  • indexOf返回一个int,而不是一个布尔值,我猜你更多地使用C ++?您可以使用以下任何一种方法:
    • indexOf(“?”)&gt; = 0
    • 包含( “?”)
    • 匹配(“\?”)等。
  • 请遵循java方式并使用camelCase for vars ...

代码

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