有人输入文本文件后,我必须这样做才会读取用户输入的文本文件。
使用switch语句,如何确保第一个单词和最后一个单词没有特定字符?
第一个单词不应该有单引号,双引号,美元符号或句号。
最后一个单词不应该有单引号,双引号,分号,冒号,句号,逗号,连字符,感叹号或问号删除它。
我正在使用hasNext,以便在一行上打印每个单词。
答案 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);
结果:
假
希望这会有所帮助。 菲尔