0

我正在尝试使用以下代码标记文本文件:

    String fileContent = "";  
    String fileContentTokens[];  
    try{  
        fileContent = new Scanner(new File(fname)).useDelimiter("\\Z").next();   
    } catch(Exception ex)  {  
        System.out.println(ex.getMessage());  
    }  

    fileContent = fileContent.replaceAll("\\s*([,.?!\"'()-:*;])\\s*", " $1 ");
    //System.out.println(fileContent);
    fileContentTokens = fileContent.split(" ");  

问题是标记没有正确形成,我的意思是有些单词仍然带有引号,有些单词仍然带有撇号。上面的代码应该在每个标点符号之间放置空格,因此它不会附加到它自己的单词上。例如:“那很酷”应该是“那很酷”。但出于某种原因,它没有这样做。它只是为一些单词而不是全部这样做。

4

2 回答 2

0

来自 Java API:请注意,替换字符串中的反斜杠 (\) 和美元符号 ($) 可能会导致结果与将其视为文字替换字符串时的结果不同;见 Matcher.replaceAll如果 Matcher.quoteReplacement(java.lang.String) 需要,用于抑制这些字符的特殊含义

于 2012-12-09T13:49:49.003 回答
0
于 2012-12-09T14:12:34.540 回答