1. ホーム
  2. java

Stringに非英数字があるかどうかを判断する方法は?

2023-08-16 11:29:06

質問

Stringに英数字以外の文字があるかどうかを知るためのメソッドが必要です。

例えばStringが"abcdef?"や"abcdefà"の場合、メソッドはtrueを返さなければなりません。

どのように解決するのですか?

Apache Commons Langを使用する。

!StringUtils.isAlphanumeric(String)

代わりにStringの文字列を繰り返し、でチェックします。

!Character.isLetterOrDigit(char)

まだ一つ問題が残っていますね。 例の文字列 "abcdefà" は英数字であり、なぜなら à が文字であるため、英数字です。しかし、あなたはこれを非英数字とみなしたいのではないでしょうか?

なので、代わりに正規表現を使った方がいいかもしれません。

String s = "abcdefà";
Pattern p = Pattern.compile("[^a-zA-Z0-9]");
boolean hasSpecialChar = p.matcher(s).find();