0

誰かがテキストファイルを入力した後、ユーザーが入力したテキストファイルを読み取れるようにする必要があります。

switchステートメントを使用して、最初の単語と最後の単語に特定の文字が含まれていないことを確認するにはどうすればよいですか?

最初の単語には、一重引用符、二重引用符、ドル記号、またはピリオドを含めないでください。

最後の単語には、一重引用符、二重引用符、セミコロン、コロン、ピリオド、コンマ、ハイフン、感嘆符、または疑問符を付けないでください。

私はしばらくの間hasNextを使用しているので、各単語が1行に出力されます。

4

2 に答える 2

0

Characterクラスメソッドを使用すると、これを簡単に行うことができますisLetterOrDigit(char ch)

于 2012-10-16T14:53:08.833 に答える
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関数を置き換えることもできます。例えば

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

結果:

false

お役に立てれば。フィル

于 2012-10-16T14:54:05.247 に答える