java 如何判斷是否是26個英文字母
場景
需要判斷,首字母是否是英文字母。
有人說,那還不簡單麼,StringUtils.isAlpha() 就可以搞定。 筆者也是這麼想的,結果卻不是如此,代碼:
logger.info("字符:'{}' 是否是字母:{}","我",StringUtils.isAlpha("我")); // true logger.info("字符:'z' 是否是字母:{}","z",StringUtils.isAlpha("z")); // true
百度瞭下,發現isAlpha是隻要在字母區間就算是字母,范圍要遠遠大於26個字母的范圍。
解決方案
正則進行判斷
用string.matches(reg) 判斷就可以,代碼:
String english="[a-zA-Z]"; logger.info("字符:'{}' 是否是字母:{}","我","我".matches(english)); // true logger.info("字符:'{}' 是否是字母:{}","z","z".matches(english)); // true
字符列表,然後遍歷
也可以寫個包含26個字符的數組,然後封裝為自己的判斷方法。 但是感覺不如matches方便,在此不詳述。
補充:java判斷字符串是否全部由數字,大小寫字母,特殊符號組成
直接上代碼,經過驗證。
package javaTest; import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { /*** * * @param args * java判斷字符是否是全部由數字,小寫字母,大寫字母,特殊符號組成 * 正則表達式判斷 */ public static void main(String[] args) { // TODO Auto-generated method stub String str = "aksjfjJAJIFJSL12455432^&^&("; String str1 = "abcdfjijgiaj"; String str2 = "JAOGVNDIJEIO"; String str3 = "12345465870"; String str4 = "@#$^^%^&*("; Pattern pattern1 = Pattern.compile("[a-z]*"); Pattern pattern2 = Pattern.compile("[A-Z]*"); Pattern pattern3 = Pattern.compile("[0-9]*"); Pattern pattern4 = Pattern.compile("\\p{Punct}+"); Matcher matcher1 = pattern1.matcher(str1); Matcher matcher2 = pattern2.matcher(str2); Matcher matcher3 = pattern3.matcher(str3); Matcher matcher4 = pattern4.matcher(str4); if (matcher1.matches()) { System.out.println("全是小寫字母"); } else { System.out.println("不全是小寫字母"); } if (matcher2.matches()) { System.out.println("全是大寫字母"); } else { System.out.println("不全是大寫字母"); } if (matcher3.matches()) { System.out.println("全是數字"); } else { System.out.println("不全是數字"); } if (matcher4.matches()) { System.out.println("全是特殊符號"); } else { System.out.println("不全是特殊符號"); } //判斷字符串是否全部由數字組成,java自帶方法判斷 boolean flag = true; for (int i = str3.length()-1; i >= 0; i--) { if (!Character.isDigit(str3.charAt(i))) { flag = false; } } if (flag) { System.out.println(str3 + "全部是數字"); } } }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- Java之Pattern.compile函數用法詳解
- Java中Pattern.compile函數的使用詳解
- Java正則表達式之Pattern類實例詳解
- Java Pattern與Matcher字符串匹配案例詳解
- java如何使用正則表達式限制特殊字符的個數