簡體   English   中英

查看字符串是否包含所有數字的方法

[英]Method to see if string contains ALL digits

我需要使用我編寫的isDigit完成方法allDigits,即當傳遞有效字符串時,如果字符串的所有字符均為數字,則返回true,否則返回false。

到目前為止,我有:

public static boolean isDigit (char ch){
    if (ch >= '0' && ch <= '9')
        return true;
    return false;
}

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

但這只是說說而返回true

public static void main(String[] args) {
    String s = "abc123";
    System.out.println(allDigits(s));
}

輸出:真

但是應該返回false

還:我的代碼有效嗎? 我覺得有一種更簡單的方法。 任何幫助表示贊賞,謝謝

您應該檢查每個字符,如果不是數字,則返回false,否則返回true:

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

    return true;
}

但是,更干凈的方法可以解決此問題,而我要做的就是使用正則表達式:

public static boolean allDigits(String s) {
    return s.replaceAll("\\d", "").equals("");
}

請注意,上述方法會將空字符串視為具有所有數字字符。 如果您希望空字符串失敗,則可以很容易地將此​​邏輯添加為邊緣情況。

我將始終尋找現有的解決方案。 如何使用https://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/StringUtils.html#isNumeric(java.lang.CharSequence)呢?

我對這些涉及效率和正確性的開源解決方案充滿信心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM