[英]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.