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 + "全部是数字");
		}
	}
}

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

(0)

相关推荐

  • Java在利用反射条件下替换英文字母中的值

    Java在利用反射条件下替换英文字母中的值 (1)创建两个Class: ReflectTest类如下: package cn.itcast.day01; import java.lang.reflect.Constructor; import java.lang.reflect.Field; public class ReflectTest { public static void main(String[] args) throws Exception { changeStringValue(

  • Java简单统计字符串中汉字,英文字母及数字数量的方法

    本文实例讲述了Java简单统计字符串中汉字,英文字母及数字数量的方法.分享给大家供大家参考,具体如下: package org.zhy.demo.algorithm; /** * 有一个字符串,其中包含中文字符.英文字符和数字字符,请统计和打印出各个字符的个数 * * @author Administrator * */ public class Str { public static void main(String[] args) { String str = "adasfAAADFD阿萨德

  • Java实现按照大小写字母顺序排序的方法

    本文实例讲述了Java实现按照大小写字母顺序排序的方法.分享给大家供大家参考,具体如下: 这里排序需要得到的结果按字母顺序.如:a-----z... import java.util.*; /** * 大小写字母的排序 * @author Administrator * */ public class z { //上边是按大写在后的进行排序 static Map<Character,Float> map=new HashMap<Character,Float>();//hashMa

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

    场景 需要判断,首字母是否是英文字母. 有人说,那还不简单么,StringUtils.isAlpha() 就可以搞定. 笔者也是这么想的,结果却不是如此,代码: logger.info("字符:'{}' 是否是字母:{}","我",StringUtils.isAlpha("我")); // true logger.info("字符:'z' 是否是字母:{}","z",StringUtils.isAlpha(

  • Java中判断字符串是中文或者英文的工具类分享

    直接上代码: 复制代码 代码如下: import java.util.regex.Matcher; import java.util.regex.Pattern; /**  *  * <p>  * ClassName ShowChineseInUnicodeBlock  * </p>  * <p>  * Description 提供判断字符串是中文或者是英文的一种思路  * </p>  *  * @author wangxu wangx89@126.com

  • java正则表达式判断前端参数修改表中另一个字段的值

    前端传参,调用接口 将两个值都传给后端,做比较,符合条件,修改数据表中另一个字段值 init (id) { this.dataForm.id = id || 0 this.visible = true this.$nextTick(() => { this.$refs['dataForm'].resetFields() if (this.dataForm.id) { this.$http({ url: this.$http.adornUrl(`/这里是接口/${this.dataForm.id}

  • python遍历小写英文字母的方法

    在c.c++等语言中,可以用字符+1的for循环来遍历小写的26个英文字母,但是由于python语言的特殊性,通过a + 1这种代码并不能成功遍历,以下是在python中遍历英文字母的简洁代码: import string for word in string.lowercase: print word 以上这篇python遍历小写英文字母的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python如何将给定字符串中的大写英文字母按以下对应规则替换

    目录 问题描述 解题思路 最终答案 python实现26个英文字母按规则输出 问题描述 输入样例: Only the 11 CAPItal LeTtERS are replaced 输出样例: Only the 11 XZKItal OeGtVIH are replaced 解题思路 首先想到的是使用字典匹配字符然后遍历替换,其次想到的是使用ASCLL码,后者更为方便简单. 思路一 inp = input() dist = ['A', 'B', 'C', 'D', 'E', 'F', 'G',

  • java中判断字段真实长度的实例(中文2个字符,英文1个字符)

    实例如下: public class Char_cn { public static void main(String[] args) { // TODO Auto-generated method stub String haha = "我叫兜兜abcd"; int true_num = String_length(haha); System.out.println("true" + true_num); int false_num = haha.length()

  • Java正则判断日期格式是否正确的方法示例

    本文实例讲述了Java正则判断日期格式是否正确的方法.分享给大家供大家参考,具体如下: 1.Java中用正则表达式判断日期格式是否正确 DateType.java: /** * @Title:DateType.java * @Package:com.you.dao * @Description: * @Author: 游海东 * @Version V1.2.3 */ package com.you.dao; import java.util.regex.Matcher; import java.

  • 用Java程序判断是否是闰年的简单实例

    我们知道,(1)如果是整百的年份,能被400整除的,是闰年:(2)如果不是整百的年份,能被4整除的,也是闰年.每400年,有97个闰年.鉴于此,程序可以作以下设计: 第一步,判断年份是否被400整除,能的话,就是闰年.比如1600.2000.2400年是闰年. 第二步,在第一步不成立的基础上,判断年份能否被100整除,如果是,则不是闰年.比如1900.2100.2200年不是闰年. 第三步,在第二步不成立的基础上,判断年份能否被4整除,如果是,则是闰年.比如1996.2004.2008年是闰年.

  • Java统计输入字符的英文字母、空格、数字和其它

    题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用while语句,条件为输入的字符不为 '\n '. 程序设计: import java.util.Scanner; public class ex7 { public static void main(String args[]) { System.out.println("请输入字符串:"); Scanner scan=new Scanner(System.in); String str=scan

随机推荐