从数组中删除除字符串中的a-z之外的所有字符

时间:2015-06-30 02:31:47

标签: java arrays

我正在尝试从文本文件中读取单词并将其存储在array.Problem中,我尝试的代码如下所示,它读取所有字符,如"单词,"并且"阅读。"但我只想要"单词"和"阅读"在数组中。

public String[] openFile() throws IOException
{
    int noOfWords=0;
    Scanner sc2 = new Scanner(new File(path));
    while(sc2.hasNext()) 
    {
         noOfWords++;
         sc2.next();
    }

    Scanner sc3 = new Scanner(new File(path));
    String bagOfWords[] = new String[noOfWords];
    for(int i = 0;i<noOfWords;i++)
    {
         bagOfWords[i] =sc3.next();
    }

    sc3.close();
    sc2.close();
    return bagOfWords;
}

3 个答案:

答案 0 :(得分:3)

使用正则表达式替换:

replaceAll("([^a-zA-Z]+)","");

并将该行应用于

bagOfWords[i] = sc3.next().replaceAll("([^a-zA-Z]+)","");

答案 1 :(得分:2)

使用此代码:

for (int i = 0; i < noOfWords; i++) {
     bagOfWords[i] = sc3.next().replaceAll("[^A-Za-z0-9 ]", "");
}

答案 2 :(得分:1)

你可能只想要字母。在这种情况下,您可以使用Character.isLetter(char)方法。

段:

String token = "word1";
String newToken = "";
for (int i = 0; i < token.length(); i++) {
    char c = token.charAt(i);
    if(java.lang.Character.isLetter(c)){
        newToken += c;
    }
}
System.out.println(newToken);