1

我有一个读取文件的方法,将每个单词放入字符串数组中,然后将每个单词添加到树中。我想修改它,以便如果单词包含非英文字符(例如西班牙语等),则不会将其添加到树中。我虽然关于“包含”方法,但它不适用于字符串类型的数组。我该怎么做?

    public void parse(File f) throws Exception {

    Node root = new  Node('+'); //create a root node
    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f)));

    String line;
    while((line = br.readLine())!=null){
        String[] words = line.toLowerCase().split(" ");

        for(int i = 0; i < words.length; i++){
            addToTree(words[i], root);
        }
    }//end of while
4

2 回答 2

3

您可以为此使用正则表达式:

Pattern nonEng = Pattern.compile("[^A-Za-z]");
...
for(int i = 0; i < words.length; i++) {
    if (!pattern.matcher(words[i]).find()) {
        addToTree(words[i], root);
    }
}

这将丢弃所有完全由英文字符组成的单词。

于 2013-04-04T15:10:39.937 回答
0

如果单词由 [a-zA-Z_0-9] 中的字母组成

return !myString.matches("^\\w+$");

如果您有标点符号和其他字符等特殊要求,请在正则表达式中添加它们。[^\w.,;:'"]

于 2013-04-04T15:16:59.987 回答