Java 使用句点(.)拆分的字符串显示不同的行为
我正在处理Java 使用句点(.)拆分的字符串显示不同的行为,java,string,Java,String,我正在处理String并尝试了的split(),比如:- String s = "Hi.Hello"; System.out.println(Arrays.toString(s.split("."))); 上述代码输出空数组。但是如果我逃出,比如:- String s = "Hi.Hello"; System.out.println(Arrays.toString(s.split("\\."))); 它的正确输出
String
并尝试了的split()
,比如:-
String s = "Hi.Hello";
System.out.println(Arrays.toString(s.split(".")));
上述代码输出空数组。但是如果我逃出
,比如:-
String s = "Hi.Hello";
System.out.println(Arrays.toString(s.split("\\.")));
它的正确输出为[Hi,Hello]
所以我想知道:-
为什么我需要转义
,但是
它通常不被视为字符串中的转义字符,因为我们可以直接使用
。String.split(String)
方法将正则表达式作为参数。在正则表达式中,“.”表示“任何字符”,因此如果确实要按“.”而不是按“任何字符”拆分,则必须对其进行转义(通过添加“\\”)
有关正则表达式的初学者,请参阅的api文档。String.split(String)
方法将正则表达式作为参数。在正则表达式中,“.”表示“任何字符”,因此如果确实要按“.”而不是按“任何字符”拆分,则必须对其进行转义(通过添加“\\”)
有关正则表达式的初学者,请参阅的api文档。您不能仅使用
拆分它,因为拆分()
围绕给定正则表达式的匹配项拆分此字符串。
用正则表达式。表示“匹配任何字符”,因此必须使用\\而不是\来转义它,因为还必须转义\字符 您不能仅使用
来拆分它,因为split()
围绕给定正则表达式的匹配项拆分此字符串。
用正则表达式。表示“匹配任何字符”,因此必须使用\\而不是\来转义它,因为还必须转义\字符 对之前的答案(正确答案)进行少量补充
通常最好使用ApacheCommonsLang()中的StringUtils.split
。它采用纯字符串(而不是正则表达式)作为参数。此外,它的行为更加直观:
StringUtils.split("a..b.c", ".") = ["a", "b", "c"]
vs
对先前答案(正确答案)的小补充
通常最好使用ApacheCommonsLang()中的StringUtils.split
。它采用纯字符串(而不是正则表达式)作为参数。此外,它的行为更加直观:
StringUtils.split("a..b.c", ".") = ["a", "b", "c"]
vs