startsWith()与'§'字符无法正常工作

时间:2016-02-06 06:44:25

标签: java string java-stream

我有以下代码:

String checkMessage = Arrays.stream(event.message.getFormattedText().split(" ")).filter(word -> !word.startsWith("§") || word.startsWith("§f")).collect(Collectors.joining(" "));
System.out.println(checkMessage);

不幸的是,通过一些测试,看起来字符串包含以'§'开头的单词,但输出中不包含“§f”。

§r§928 §r§r§c§lTITAN §r§eSimplyAnon§r §ftest§r

这是怎么发生的?

1 个答案:

答案 0 :(得分:2)

与编译器使用的内容相比,您的java源文件可能具有不同的字符集。在编译期间使用javac -encoding <source_file_encoding>(例如,如果源文件是UTF-8,则为javac -encoding utf8)或使用系统默认编码保存源文件。