Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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中解析文件输入?_Java - Fatal编程技术网

如何在java中解析文件输入?

如何在java中解析文件输入?,java,Java,我想知道还有什么方法可以解析文件中的信息。我只想从每行中获取2个值,每行由大约5个不同的项组成。我已经找到了最基本的方法,但是如果数据稍微改变一下,这个方法就行不通了。有没有办法跳过某些值而不这样做 下面是正在读取的数据的外观。我只希望每行的前两个值能够与用户输入的其他值进行比较 3约书亚25965汉纳18802 14大卫39915赫尔达18811 这是我目前的方法,但我想找出一个更好的方法,也许使用模式匹配函数,但我不确定如何做到这一点 while(readFile.hasNext(){

我想知道还有什么方法可以解析文件中的信息。我只想从每行中获取2个值,每行由大约5个不同的项组成。我已经找到了最基本的方法,但是如果数据稍微改变一下,这个方法就行不通了。有没有办法跳过某些值而不这样做

下面是正在读取的数据的外观。我只希望每行的前两个值能够与用户输入的其他值进行比较

3约书亚25965汉纳18802

14大卫39915赫尔达18811

这是我目前的方法,但我想找出一个更好的方法,也许使用模式匹配函数,但我不确定如何做到这一点

while(readFile.hasNext(){  
            if(gender == 'M'){      
                rank = readFile.nextInt();      
                compareName = readFile.next();      
                skip = readFile.nextInt();      
                garbageName = readFile.next();
                skip = readFile.nextInt();  
}

您可以使用nextLine方法逐行解析输入,然后分别解析每一行(使用Scanner或String.split()或其他方法)

如果文件包含

14大卫39915赫尔达18811


,在令牌[0]中,您将拥有字符串“14”、在令牌[1]中,“David”等等

使用
nextLine
,或者使用不同的
Scanner
解析行,或者在
上拆分,
delimnator如果可能,您是否能够提供一个示例,我仍然有点困惑。String.split()还会拆分整数和逗号吗?例如,如果我想检查输入的名称是否为实际名称/字符串,而不是一组像000这样的数字。我怎样才能检查呢?我想我要找的术语是regex?是的,如果你想确定这行有一个特定的格式,你应该使用regex,我现在就给你一个机会。令牌[1].equals(名称)仍然有效吗?
while(readFile.hasNext(){  
    String line = readFile.nextLine();
    String[] tokens = line.split(" ");
}