一、使用Java內置函數實現
對於一個字符串是否全部由數字組成的判斷,可以使用Java內置函數實現:
public static boolean isNumeric(String str) { for (int i = 0; i < str.length(); i++) { if (!Character.isDigit(str.charAt(i))) { return false; } } return true; }
使用Character.isDigit()函數遍歷字符串中的每一個字符,若不是數字則返回false。如果遍歷完整個字符串仍沒有返回,說明該字符串全部由數字組成,返回true。
二、使用正則表達式實現
除了使用內置函數外,還可以使用正則表達式判斷一個字符串是否全部由數字組成:
public static boolean isNumeric(String str){ Pattern pattern = Pattern.compile("[0-9]*"); return pattern.matcher(str).matches(); }
使用Pattern.compile()函數將一個正則表達式編譯成一個Pattern對象,[0-9]表示數字,*表示匹配0個或多個數字。使用Matcher.matches()函數將字符串與Pattern匹配,如果匹配成功則返回true,否則返回false。
三、使用ASCII碼錶實現
我們還可以使用ASCII碼錶判斷一個字符串是否全部由數字組成:
public static boolean isNumeric(String str){ byte[] bytes = str.getBytes(); for (int i = 0; i < bytes.length; i++) { if (bytes[i] 57) { return false;//不是數字 } } return true;//全是數字 }
將字符串轉換成字節數組,然後判斷每一個字節是否在ASCII碼錶的數字範圍內。48~57表示ASCII碼錶中的0~9,如果字符不在該範圍內,說明該字符串不是純數字字符串。
四、總結
以上三種方法都能夠判斷一個字符串是否全部由數字組成,但在實際開發中需要依據實際情況選擇最合適的方法,對於短小的字符串,使用內置函數更為合適;對於大量的字符串,使用ASCII碼錶方法更為高效;對於複雜的字符串,使用正則表達式方法能夠方便地實現高度可定製化。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247589.html