1. ホーム

[解決済み】Java String - 文字列が数字だけで、文字が含まれていないかどうかを確認する

2022-04-05 10:44:11

質問

アプリケーション全体で読み込む文字列があり、数字から文字などに変化します。私は単純な if ステートメントを使用して、文字や数字が含まれているかどうかを確認することができますが、何かが正しく動作していないようです。以下はそのスニペットです。

String text = "abc"; 
String number; 

if (text.contains("[a-zA-Z]+") == false && text.length() > 2) {
    number = text; 
}

しかし text 変数には文字が含まれていますが、条件は true . と && は、両方の条件を満たすものとして評価される必要があります。 true を処理するために number = text;

==============================

解決策

この質問に対するコメントで提供された以下のコードを使うことで解決できました。他の投稿も全て有効です

私が使用したものは、最初のコメントから来ました。しかし、提供されたすべてのサンプルコードも同様に有効であるように思われる!

String text = "abc"; 
String number; 

if (Pattern.matches("[a-zA-Z]+", text) == false && text.length() > 2) {
    number = text; 
}

解決方法は?

数値をテキストとして処理するのであれば、変更します。

if (text.contains("[a-zA-Z]+") == false && text.length() > 2){

になります。

if (text.matches("[0-9]+") && text.length() > 2) {

という文字列があるかどうかをチェックするのではなく にアルファベットが含まれていることを確認します。 のみ の数値。

実際に数値を使用する場合は Integer.parseInt() または Double.parseDouble() は、他の方が以下で説明されている通りです。


余談ですが、一般的にブーリアン値を比較するのはバッドプラクティスとされており true または false . ただ if (condition) または if (!condition) .