Проблема не в китайских иероглифах, а в ключевых словах длиной в два символа.(Вот почему это также влияет на UI
.) Это регулярное выражение:
[^\s,](?:[^,]+[^\s,])?
предоставляет две возможности:
[^\s,] <-- exactly one character
[^\s,][^,]+[^\s,] <-- three or more characters
, поэтому любые ключевые слова с двумя символами не будут совпадать, поэтомуразделить на односимвольные ключевые слова.
Вы можете исправить свое регулярное выражение, изменив [^,]+
на [^,]*
, но я склонен согласиться с духом комментария Кисаро выше;Я думаю, вам лучше использовать Pattern.split
:
private static final KEYWORD_SPLITTER = Pattern.compile("\\s*,\\s*");
for(final String s : KEYWORD_SPLITTER.split(keywords))
System.out.println("keyword:" + s);