在有人输入一个文本文件后,我必须让它读取用户输入的文本文件。
使用 switch 语句,如何确保第一个单词和最后一个单词没有特定字符?
第一个单词不应有单引号、双引号、美元符号或句点。
最后一个单词不应有单引号、双引号、分号、冒号、句号、逗号、连字符、感叹号或问号将其删除。
我正在使用 hasNext,以便将每个单词打印在一行上。
在有人输入一个文本文件后,我必须让它读取用户输入的文本文件。
使用 switch 语句,如何确保第一个单词和最后一个单词没有特定字符?
第一个单词不应有单引号、双引号、美元符号或句点。
最后一个单词不应有单引号、双引号、分号、冒号、句号、逗号、连字符、感叹号或问号将其删除。
我正在使用 hasNext,以便将每个单词打印在一行上。
好吧,您可以使用Character
类方法轻松地做到这一点isLetterOrDigit(char ch)
。
读入第一个单词后,您可以调用此函数(将第一个单词作为参数传递),如果该单词包含任何非法字符,它将返回 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 函数。例如
boolean validWord = ("piz'za".matches("[^'\"$ ]+")) ? true : false;
System.out.println(validWord);
结果:
错误的
希望这可以帮助。菲尔