ホームページ > Java > &#&チュートリアル > Java 文字列が整数を表しているかどうかを効率的に判断するにはどうすればよいですか?

Java 文字列が整数を表しているかどうかを効率的に判断するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-29 10:53:10
オリジナル
949 人が閲覧しました

How Can I Efficiently Determine if a Java String Represents an Integer?

Java で文字列が整数を表すかどうかを判断する

Java では、複雑な式を処理するときに String 配列内の整数を識別するという問題が発生します。ここでは、指定された String が整数として適格かどうかを判断するメソッドを検討します。

IsInteger Method

単純なアプローチは、String を走査し、各文字が有効な数字であることを確認することです。指定された基数。これにより、すべての要素が確実に精査されます。ただし、実用的な目的では、最適な効率が提供されます:

public static boolean isInteger(String s) {
    return isInteger(s, 10);
}

public static boolean isInteger(String s, int radix) {
    if (s.isEmpty()) {
        return false;
    }
    for (int i = 0; i < s.length(); i++) {
        if (i == 0 && s.charAt(i) == '-') {
            if (s.length() == 1) {
                return false;
            } else {
                continue;
            }
        }
        if (Character.digit(s.charAt(i), radix) < 0) {
            return false;
        }
    }
    return true;
}
ログイン後にコピー

Java ライブラリのアプローチ

代わりに、Java ライブラリは例外のないメカニズムを提供します:

public static boolean isInteger(String s, int radix) {
    Scanner sc = new Scanner(s.trim());
    if (!sc.hasNextInt(radix)) {
        return false;
    }
    // Ensures there's no remaining data after extracting the integer
    sc.nextInt(radix);
    return !sc.hasNext();
}
ログイン後にコピー

非標準テクニック

気楽なアプローチを持つ人向けに、次の疑わしいテクニックでは例外が使用されます。処理:

public static boolean isInteger(String s) {
    try {
        Integer.parseInt(s);
    } catch (NumberFormatException | NullPointerException e) {
        return false;
    }
    // Success if no exceptions occurred
    return true;
}
ログイン後にコピー

結論として、Java で String が整数を表すかどうかを判断するには、効率と実装スタイルを慎重に考慮する必要があります。ここで説明する方法により、さまざまなシナリオに合わせた複数のオプションが提供されます。

以上がJava 文字列が整数を表しているかどうかを効率的に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート