当前位置 博文首页 > 文章内容

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

    作者:shunshunshun18 栏目:未分类 时间:2021-01-22 14:44:37

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    场景

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

    有人说,那还不简单么,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 + "全部是数字");
    		} 
    	} 
    }

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