Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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_Regex_Parsing - Fatal编程技术网

Java解析字符串

Java解析字符串,java,regex,parsing,Java,Regex,Parsing,我得到了一个.txt文件,其中包含不同格式的国籍和电话号码,所有这些都是单引号符号,而且它还包含空行(“”): 在我借助readLine()解析之后,我得到了这些行的arr[0]。 我需要将行放入不同的数组:将带有“国籍”的行放入一个数组,将带有“电话号码”的行放入另一个数组。 我试过这个 if(!arr[0].equals("''")){ String[] arr1 = arr[0].split("'"); if(!arr1[1].matches("[0-9]+)"){

我得到了一个.txt文件,其中包含不同格式的国籍和电话号码,所有这些都是单引号符号,而且它还包含空行(“”):

在我借助
readLine()
解析之后,我得到了这些行的
arr[0]

我需要将行放入不同的数组:将带有“国籍”的行放入一个数组,将带有“电话号码”的行放入另一个数组。
我试过这个

if(!arr[0].equals("''")){
   String[] arr1 = arr[0].split("'");
   if(!arr1[1].matches("[0-9]+)"){
     nations[n] = arr1[1];
     n++;
   }
   else {
     phone_numbers[p] = arr1[1];
     p++;
   }
}

当然它不起作用

我建议实施某种系统来区分线路类型。您可以在国籍行的开头加上“n”,然后在代码中检测它。。。。或者,如果您知道这些行的确切顺序,例如国籍、编号、国籍、编号。。。您可以很容易地将这些行分开,例如lineNumber%numOfLineTypes==0将为您提供第一种类型的行…

在您的问题中,您说您需要

将行放入不同的数组:将带有“国籍”的行放入一个数组,将带有“电话号码”的行放入另一个数组

我用这个文本文件进行了测试

''
'French'
'1-500'
'0345134123'
''
''
'Japan'
'2-200'
'08078933444'
''
''
''
'Germany'
'2-300'
'00078933444'
''
您将获得两个数组,国籍[nationArr]和带有电话的线路[phoneArr]。 答案是这样的

French
Japan
Germany
------------
1-500
0345134123
2-200
08078933444
2-300
00078933444

“当然没用了”。为什么?如果每个项目的行数是固定的,那么我看不出有任何理由不能迭代并将每行转储到其相应的数组中。您的文本文件模式是这样的:名称国籍地址电话名称国籍地址电话等等,“很多。荒谬的数目。比你想象的要多。当你已经走到了尽头,没有答案的痛苦超过了发帖所带来的巨大耻辱,这时你可以继续提问。因为在那一点上,你将做任何必要的研究,使它成为一个值得问的好问题!"
''
'French'
'1-500'
'0345134123'
''
''
'Japan'
'2-200'
'08078933444'
''
''
''
'Germany'
'2-300'
'00078933444'
''
French
Japan
Germany
------------
1-500
0345134123
2-200
08078933444
2-300
00078933444