读取文本文件并删除特定字符

时间:2012-10-16 14:42:23

标签: java

有人输入文本文件后,我必须这样做才会读取用户输入的文本文件。

使用switch语句,如何确保第一个单词和最后一个单词没有特定字符?

第一个单词不应该有单引号,双引号,美元符号或句号。

最后一个单词不应该有单引号,双引号,分号,冒号,句号,逗号,连字符,感叹号或问号删除它。

我正在使用hasNext,以便在一行上打印每个单词。

2 个答案:

答案 0 :(得分:0)

您可以使用Character类方法isLetterOrDigit(char ch)轻松完成此操作。

答案 1 :(得分:0)

读完第一个单词后,您可以调用此函数(将第一个单词作为参数传递),如果单词包含任何非法字符,它将返回true。然后,您可以轻松地创建另一个来测试您的最后一个单词。

public boolean containsIllegalChar(String testWord){
boolean containsIllegalChar = false;

for(int count=0; count < testWord.length(); count++){
     char testChar = testWord.charAt(count);
     switch (testChar)
     {
     case ''': containsIllegalChar = true;
     break;
     case '"': containsIllegalChar = true;
     break;
     case '$': containsIllegalChar = true;
     break;
     case ' ': containsIllegalChar = true;
     break;
     default: break;
     }
}
return containsIllegalChar;
}

要测试最后一个单词,您可以使用此结构

String lastWord = "";
while((holder = reader.read()) != -1){  
     lastWord = holder;
     //YOUR PROCESSING
}
boolean testLastWord = containsIllegalCharLastWord(lastWord);

if(testLastWord){
//Contains illegal char
}
else{
//Does not contain
}

您还可以通过针对一个漂亮的正则表达式测试您的字符串来替换containsIllegalChar函数。 E.g

boolean validWord = ("piz'za".matches("[^'\"$ ]+")) ? true : false;
System.out.println(validWord);

结果:

  

希望这会有所帮助。 菲尔