我正在尝试从文本文件中读取单词并将其存储在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;
}
答案 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);