2017-08-23 1 views
4

こんにちは、文字列に数値が含まれているかどうかを調べる述語検証があるかどうかを知る必要があります。私は特殊文字を許可したいが、数字やスペースは入れない。 アルファベットをチェックする述語がありますが、特殊文字は使用できません。アルファベットと特殊文字のみを使用できるものが必要です。文字列にスペースや数値が含まれている場合はfalseを返します。文字列に数値が含まれているかどうかを検証する述語

+0

あなたは特殊文字の定義を教えてください。 – shmosel

+0

下線は正確ですが、Regexの使用を避けたいです! – Alex

+2

なぜあなたは正規表現を避けたいですか? – shmosel

答えて

4

私は質問の私の理解を示すために正規表現を使用します。ここで

Predicate<String> predicate = x -> { 
    for (int i = 0 ; i < x.length() ; i++) { 
     if (!Character.isLetter(x.charAt(i)) && !x.charAt(i) == '_') { 
      return false; 
     } 
    } 
    return true; 
}; 

は同じことをする方法です:あなたは

[a-zA-Z_]* 

regexlesslyこれを行う1つの方法は、forループを使用して、各文字をチェックすることですが、一致する文字列のためにtrueを返すPredicate<String>をしたいです物:

public static boolean test(String x) { 
    for (int i = 0 ; i < x.length() ; i++) { 
     if (!Character.isLetter(x.charAt(i)) && !x.charAt(i) == '_') { 
      return false; 
     } 
    } 
    return true; 
} 
+0

私が間違っていない場合、ここで調べる文字列はxですか? – Alex

+0

あなたは 'predicate.test("あなたの文字列 ")'のように使うことができます。あなたは述語が欲しいと言ったので、私はあなたにそれを与えました。あなたは方法や何かをしたいですか? @Alex – Sweeper

+0

はい、私はPredicatesに新しいのですから、詳細な答えがわかるでしょう! – Alex

関連する問題