Java 拆分字符串时使用哪种delimeter
我需要在每一行中拆分这一行字符串,我需要得到第三个单词(电影名称),但正如你所看到的,delimeter是一个大的空白字符,在某些情况下,它的大小类似于结尾的数字之前,或者它的大小类似于前面的数字 我尝试使用带有(“”)regex的字符串拆分,也尝试了Java 拆分字符串时使用哪种delimeter,java,regex,delimited-text,Java,Regex,Delimited Text,我需要在每一行中拆分这一行字符串,我需要得到第三个单词(电影名称),但正如你所看到的,delimeter是一个大的空白字符,在某些情况下,它的大小类似于结尾的数字之前,或者它的大小类似于前面的数字 我尝试使用带有(“”)regex的字符串拆分,也尝试了\t,但得到了越界错误 400115305 Lionel_Atwill The_Song_of_Songs_(1933_film) 7587 400115309 Brian_Aherne A_Night_to_Remember
\t
,但得到了越界错误
400115305 Lionel_Atwill The_Song_of_Songs_(1933_film) 7587
400115309 Brian_Aherne A_Night_to_Remember_(1943_film) 7952
有人有同样的问题吗?您是否尝试过像这样拆分所有空格:
行。拆分(\\s+)
。split
方法支持正则表达式
编辑:对不起,应该是\\s
下面的代码
String line = "400115305 Lionel_Atwill The_Song_of_Songs_(1933_film) 7587";
System.out.println(Arrays.toString(line.split("\\s+")));
在我的机器(Java 6 SE)上返回
[400115305,Lionel_Atwill,The_Song_of_Songs_(1933_film),7587]
。您是否尝试过像这样拆分所有空格:行。拆分(\\s+)
。split
方法支持正则表达式
编辑:对不起,应该是\\s
下面的代码
String line = "400115305 Lionel_Atwill The_Song_of_Songs_(1933_film) 7587";
System.out.println(Arrays.toString(line.split("\\s+")));
在我的机器(Java 6 SE)上返回
[400115305,Lionel_Atwill,The_Song_of_Songs_(1933_film),7587]
。此代码应该可以工作。一个好的应该是s.split(\\+)代码>
这个代码应该可以工作。一个好的应该是s.split(\\+)代码>
此代码:
String s = "400115305 Lionel_Atwill The_Song_of_Songs_(1933_film) 7587\r\n"
+ "400115309 Brian_Aherne A_Night_to_Remember_(1943_film) 7952";
String[] lines = s.split("\\r\\n"); // split lines
for (String line : lines) {
String[] items = line.split("[\\s\u00A0]+"); // split by whitespace OR
System.out.println("Film=" + items[2]);
}
具有以下输出:
Film=The_Song_of_Songs_(1933_film)
Film=A_Night_to_Remember_(1943_film)
此代码:
String s = "400115305 Lionel_Atwill The_Song_of_Songs_(1933_film) 7587\r\n"
+ "400115309 Brian_Aherne A_Night_to_Remember_(1943_film) 7952";
String[] lines = s.split("\\r\\n"); // split lines
for (String line : lines) {
String[] items = line.split("[\\s\u00A0]+"); // split by whitespace OR
System.out.println("Film=" + items[2]);
}
具有以下输出:
Film=The_Song_of_Songs_(1933_film)
Film=A_Night_to_Remember_(1943_film)
为什么不根据需要使用正则表达式。它非常灵活,可以轻松解决您的问题。
这里有一个链接可能对您有所帮助:为什么不使用正则表达式来满足您的需要。它非常灵活,可以轻松解决您的问题。
这里有一个链接可以帮助您:解决方案是str.split(\\t”)代码>解决方案是str.split(\\t”)代码>