Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么useDelimiter是这样工作的?_Java_Java.util.scanner_Delimiter - Fatal编程技术网

Java 为什么useDelimiter是这样工作的?

Java 为什么useDelimiter是这样工作的?,java,java.util.scanner,delimiter,Java,Java.util.scanner,Delimiter,我一直在尝试读取包含以下文本文件的文件夹: K.Love,CLE,miss,2 K.Leonard,TOR,miss,2 K.Love,CLE,make,1 ... 我在做一些测试,出于某种原因,当我使用usedilemeter忽略或使逗号消失时,我遇到了一个问题。我将首先显示代码: import java.io.*; import java.util.*; public class test { public static void main(String[] args) thro

我一直在尝试读取包含以下文本文件的文件夹:

K.Love,CLE,miss,2
K.Leonard,TOR,miss,2
K.Love,CLE,make,1
...
我在做一些测试,出于某种原因,当我使用
usedilemeter
忽略或使逗号消失时,我遇到了一个问题。我将首先显示代码:

import java.io.*;
import java.util.*;

public class test {
    public static void main(String[] args) throws FileNotFoundException {
        File inputFile = new File("src\\main\\resources\\games\\game1.txt");
        Scanner reader = new Scanner(inputFile);
        reader.useDelimiter(",");
        ArrayList<String> names = new ArrayList<>();
        while (reader.hasNext()) {
            String input = reader.next();
            names.add(input);
        }
        System.out.println(names.get(3));
        reader.close();
    }
}
但它并没有打印出来:

2
K.Leonard

当我将位置更改为数字4时,它会打印:
TOR
(团队名称)。

您将分隔符定义为
,这意味着换行符不再是分隔符。要获得预期的行为,可以使用正则表达式,其中
或换行符被视为分隔符:

reader.useDelimiter("[,\n]");

您将分隔符定义为
,这意味着换行符不再是分隔符。要获得预期的行为,可以使用正则表达式,其中
或换行符被视为分隔符:

reader.useDelimiter("[,\n]");

“2”和“K.Leonard”之间没有
,所以为什么它们会独立获取?哦,很抱歉问这个问题,但我该如何解决?我对编程非常陌生,很抱歉我的无知。最好使用CSV库,而不是扫描仪。在“2”和“K.Leonard”之间没有
,所以为什么它们会独立获取?哦,很抱歉问这个问题,但我该如何解决呢?我对编程很陌生,很抱歉我的无知。最好使用CSV库而不是扫描仪all@UnNameSAS这个regexp有一个严重的问题-它不能在windows或windows格式的文本输入上工作。请尝试
,|\r?\n“
@UnNameSAS该regexp存在严重问题-它在windows或windows格式的文本输入上不起作用。请尝试
,|\r?\n“