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