每当我尝试使用"hello*world"
拆分字符串s.split("*");
时,我都会遇到PatternSyntaxException。
我尝试过使用s.split("\*");
,但这又给了我一个错误。我确定这很简单。
我如何阻止这种情况?
答案 0 :(得分:5)
*
是正则表达式中的元字符,用作匹配零个字符的通配符量词
尝试使用2个反斜杠字符
s.split("\\*");
答案 1 :(得分:3)
split
方法将正则表达式作为参数,而不是普通字符串。 *
在正则表达式中具有特殊含义。如果要拆分文字*
,则必须使用反斜杠对其进行转义。但反斜杠也是Java字符串文字中的转义字符,所以你必须使用两个反斜杠来转义反斜杠:
s.split("\\*")