1

我有以下代码,但我不知道为什么,正则表达式与来自文件的字符串不匹配。

String s = new String(Files.readAllBytes(Paths.get("training set", "fr-le-petit-prince.txt")), StandardCharsets.UTF_8);
System.out.println(s);  // Mon dessin ne representait pas un chapeau.

s = s.replaceAll("[^a-zA-Z ]", "").toLowerCase();
System.out.println(s);  // empty, but the value in debugger is : mon dessin ne representait pas un chapeau.

s = "TeSt";
s = s.replaceAll("[^a-zA-Z ]", "").toLowerCase();
System.out.println(s);  // test
4

1 回答 1

0

我发现问题出在我的文本文件太大了。如您在上面看到的,它不仅包含一个句子,而且包含更多。似乎字符串太大,然后在 Eclipse 控制台中是不可见的。但是,如果我将控制台的不可见内容复制并粘贴到记事本,则会正确显示。如果我将内容写入文件也是如此,这很好。

要在 Eclipse 中解决它:转到 Window > Preferences > Run/Debug > Console > Check width console 并设置一个数字。它出现 !

不要问我为什么会这样,我只是通过实验发现的,对此我没有任何解释。

于 2018-12-03T21:46:37.910 回答