每當我嘗試使用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