0

次のロジックを使用して、受け取った文字列が有効な数値であるかどうかを確認しています

package com;


public class Test {
    public static void main(String args[]) {
        String str = "122";
        boolean b = isNumb(str);
        System.out.println(b);
    }

    public static boolean isNumb(String str) {
        String s = str;
        for (int i = 0; i < s.length(); i++) {
            if (!Character.isDigit(s.charAt(i)))
                return false;
        }
        return true;
    }

}

一度に 800 ~ 900 人の同時ユーザーが存在する高度なマルチスレッド環境でこれを使用します。このコードにループ ホールがあるかどうか教えてください。

あなたの意見を共有してください

前もって感謝します

4

4 に答える 4

5

私は正規表現を使用します:

public static boolean isNumb(String str) {
    return str.matches("\\d+");
}

負の数に対しても true を返すには、オプションの先頭にダッシュを追加します。

return str.matches("-?\\d+");
于 2013-08-06T11:16:52.520 に答える
2

指定された文字列が有効な数値 (整数だけでなく) であるかどうかを検証するには:

boolean b = str.matches("^[+-]?(?=.)\\d*(\\.\\d+)?$");
于 2013-08-06T11:18:21.383 に答える
2

正規表現を使用するなど、文字列が数値かどうかを確認するより良い方法があります。

s.matches("^-?\\d+(\\.\\d)?$")

文字列が数値かどうかを簡単に選択できます。ここで、s は文字列です。

于 2013-08-06T11:15:39.953 に答える
2

String が数値かどうかを確認するには、次のようにします。

try {
    final Integer i = Integer.parseInt("Your String");
} catch(final NumberFormatException nfe) {
    //String is no number
}
于 2013-08-06T11:19:05.707 に答える