次のような文字列をトークン化する
4830673048;Tony White
必要があります: で区切られた 2 つのトークンが必要です;
。最初のトークンには 10 桁の数字が含まれている必要があり
ます。
private static boolean isValid(String accountLine) throws BankAccountException
{
StringTokenizer strTok = new StringTokenizer(accountLine, ";");
boolean valid = true;
if(strTok.countTokens() == 2)
{
if(strTok.nextToken().length() == 10 && strTok.nextToken().matches(".*[0-9].*"))
{
if(!strTok.nextToken().matches(".*[0-9].*"))
{
valid = true;
}
}
}
else
{
System.out.println("Invalid Bank Account info. " + strTok.nextToken());
valid = false;
}
return valid;
}
これが私が思いついたコードですが、期待どおりの動作をしません。問題はおそらく私の使用にあることはわかっています.nextToken()
。それで私の質問は、最初または2番目のトークンのみをチェックするための適切なStringTokenizerメソッドは何ですか?