每当我尝试使用s.split("*");
拆分字符串"hello*world"
时,我都会得到一个PatternSyntaxException异常。PatternSyntaxException将字符串拆分为“*”字符
我试过使用s.split("\*");
但这给了我另一个错误。我确定这很简单。
我该如何解决这个问题?
每当我尝试使用s.split("*");
拆分字符串"hello*world"
时,我都会得到一个PatternSyntaxException异常。PatternSyntaxException将字符串拆分为“*”字符
我试过使用s.split("\*");
但这给了我另一个错误。我确定这很简单。
我该如何解决这个问题?
的split
方法采用正则表达式作为参数尝试,不是一个普通的字符串。 *
在正则表达式中有特殊含义。如果你想分割一个文字*
,你必须用一个反斜杠进行转义。但是反斜杠也是Java的字符串文字的转义字符,所以你必须得使用两个反斜杠转义反斜线:
s.split("\\*")
*
是元字符在用作通配符量词匹配的多个字符零的正则表达式
使用2-反斜线字符
s.split("\\*");
我想你应该有这样的:元字符'<([{\^- = $!|}})?* +。>' –
或者使用'Pattern.quote()'或者'Matcher.quoteReplacement()'等效。 – Rekin