java 如何判断是否是26个英文字母

时间:2021-05-19

场景

需要判断,首字母是否是英文字母。

有人说,那还不简单么,StringUtils.isAlpha() 就可以搞定。 笔者也是这么想的,结果却不是如此,代码:

logger.info("字符:'{}' 是否是字母:{}","我",StringUtils.isAlpha("我")); // truelogger.info("字符:'z' 是否是字母:{}","z",StringUtils.isAlpha("z")); // true

百度了下,发现isAlpha是只要在字母区间就算是字母,范围要远远大于26个字母的范围。

解决方案

正则进行判断

用string.matches(reg) 判断就可以,代码:

String english="[a-zA-Z]"; logger.info("字符:'{}' 是否是字母:{}","我","我".matches(english)); // truelogger.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 + "全部是数字"); } } }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章