Java区分大小写字母数字和符号

java如何区分如题的四种东西呢?首先我想到的是利用ASCII码,因为不同的符号的ASCII码是不一样的。而要利用ASCII码区分的话,至少要知道A,Z,a,z,0,9的ASCII码,这样就可以利用ASCII码来区分了。

这是第一种方法。

 1 package test;
 2 import java.util.Scanner;
 3 public class Differentiate{
 4     public static void main(String[] args){
 5         // A-65,Z-90,a-97,z-122,0-48,9-57
 6         Scanner sc = new Scanner(System.in);
 7         String nextLine = sc.nextLine();
 8         char[] charArray = nextLine.toCharArray();
 9         for(int i = 0;i<charArray.length;i++){
10             int charAscii = (int)charArray[i];
11             if(charAscii >=65 && charAscii <=90){
12                 System.out.print("大写字母:");
13                 System.out.println(charArray[i]);
14             }else if(charAscii >=97 && charAscii <=122){
15                 System.out.print("小写字母:");
16                 System.out.println(charArray[i]);
17             }else if(charAscii >= 48 && charAscii <= 57){
18                 System.out.print("数字:");
19                 System.out.println(charArray[i]);
20             }else{
21                 System.out.print("符号:");
22                 System.out.println(charArray[i]);
23             }
24         }
25     }
26 }

第二种方法,在网上查资料查到的,貌似在java里面对A-Z,a-z,0-9的char字符都有排序的,所以可以直接比较。

 1 package test;
 2
 3 import java.util.Scanner;
 4
 5 public class Differentiate{
 6     public static void main(String[] args) {
 7         Scanner sc = new Scanner(System.in);
 8         String nextLine = sc.nextLine();
 9         for (int i = 0; i < nextLine.length(); i++) {
10             char c = nextLine.charAt(i);
11             if (c >= ‘A‘ && c <= ‘Z‘) {
12                 System.out.print("max ");
13                 System.out.println(c);
14             } else if (c >= ‘a‘ && c <= ‘z‘) {
15                 System.out.print("min ");
16                 System.out.println(c);
17             } else if (c >= ‘0‘ && c <= ‘9‘) {
18                 System.out.print("数字 ");
19                 System.out.println(c);
20             } else {
21                 System.out.print("符号");
22                 System.out.println(c);
23             }
24         }
25     }
26 }

还有一种方法,利用indexOf()函数,如果某个字符在字符串里面不存在,就会返回-1,所以只需要先做出A-Z,a-z,0-9三个字符串,然后每次用这三个字符串判断就行了

 1 package test;
 2
 3 import java.util.Scanner;
 4
 5 public class Differentiate{
 6     public static void main(String[] args) {
 7         Scanner sc = new Scanner(System.in);
 8         String nextLine = sc.nextLine();
 9         String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
10         String lower = "abcdefghijklmnopqrstuvwxyz";
11         String num = "0123456789";
12         char[] charArray = nextLine.toCharArray();
13         for(int i = 0;i<charArray.length;i++){
14             if(upper.indexOf(charArray[i]) != -1){
15                 System.out.print("大写字母:");
16                 System.out.println(charArray[i]);
17             }else if(lower.indexOf(charArray[i]) != -1){
18                 System.out.print("小写字母:");
19                 System.out.println(charArray[i]);
20             }else if(num.indexOf(charArray[i]) != -1){
21                 System.out.print("数字:");
22                 System.out.println(charArray[i]);
23             }else{
24                 System.out.print("符号:");
25                 System.out.println(charArray[i]);
26             }
27         }
28     }
29 }
时间: 2024-10-01 03:11:02

Java区分大小写字母数字和符号的相关文章

华为上机测试题(Excel表格纵列字母数字转换-java)

PS:这是我刚做的一道题,题目不难,满分60,得分40,大家看看哪里有问题,欢迎提意见,感谢! /* * 题目:Excel表格纵列字母数字转换 * 描述: 在Excel中列的编号为A-Z,AA-AZ,BA-BZ.....CZB.....,请实现一个函数要求满足以下功能,将编号进行修改, * 如A-Z为1-26,然后翻转为两位,AA为27,AB为28.....ZZ为702,然后翻转为3位,AAA=703,AAB=704... 输入的字符串最长只有4. 题目类别: 字符串 难度: 初级 分数: 60

Java生成随机数(n位长度,字母+数字)

1 package demo; 2 import java.util.Random; 3 4 /** 5 * 生成字母+数字的随机数 6 * @author sy 7 * 8 */ 9 public class Demo{ 10 11 public static void main(String[] args){ 12 System.out.println(getStringRandom(6)); 13 } 14 15 public static String getStringRandom(i

使用一系列命令生成字母数字符号组合

随机生成10位数字:date +%N%N | cut -c '1-10'uuidgen | tr 'a-z-' '0-9' | cut -c 1-10随机生成10位字母:date +%N%N | cut -c 1-10 | tr '0-9' 'a-z'uuidgen | tr '0-9-' 'a-z' | cut -c 1-10openssl rand -hex 10 | tr '0-9' 'a-z' | cut -c 1-10cat /dev/urandom | tr -dc "a-zA-Z&

正则检验密码长度6-20位,且至少带字母、数字、符号中的两种。

let pwd = '123456' let reg = new RegExp(/^(?[\d]+$)(?[a-zA-Z]+$)(?![^\da-zA-Z]+$).{6,20}$/); //6-20位,至少带字母数字符号中的两种的正则 let result = reg.test(pwd); if(!result){ //do something //不通过的 } 原文地址:https://www.cnblogs.com/hukuangjie/p/12303000.html

工具类:获得随机字母和数字的组合(字母+数字组合,字母组合,数字组合)

package util; import java.util.Random; /** * * @author jkfeng * 获得随机字母和数字的组合(字母+数字组合,字母组合,数字组合) * */ public class RandomCharOrNumUtil { public static void main(String[] args) { System.out.println(getCharAndNum(6)); System.out.println(getChar(6)); Sys

通过php生成纯数字、字母数字、图片、纯汉字的随机数验证码

现在讲开始通过PHP生成各种验证码旅途,新手要开车了,请刷卡! 首先,我们开始先生成一个放验证码的背景图片 注:没有Imagejpg()这个函数,只有imagepng()函数 imagecreatetruecolor()函数含义 效果 考虑到我们一般验证码的背景图片为白色,那么我们现在就把背景图片改一下 效果 相关函数意思 注:在输出图片之前,我们必须要生成header("Content-type:image/png"),即告诉服务器输出的是图片 一.生成纯数字验证码 1.产生数字的代

【甘道夫】开发Hive自定义UDF,生成32位字母数字随机串

引言 曾经认为Hive自带的函数应该可以cover住我的日常所需,心想那些需要使用自定义函数的场景是不是太奇葩,谁知命运弄人,自己还是碰上了. 需求很简单,我需要模拟Oracle中的SYS_GUID()函数,生成一个32位的字母数字随机串. 开发环境:Eclipse+Maven,引入Hive0.13.1的依赖. 欢迎转载,请注明来源: http://blog.csdn.net/u010967382/article/details/41083617 代码 package cn.fulong.big

JS生成随机的由字母数字组合的字符串

前言 最近有个需求,是需要生成3-32位长度的字母数字组合的随机字符串,另一个是生成43位随机字符串. 方法一 奇妙的写法 1 Math.random().toString(36).substr(2); 输出结果 解释 很有意思,研究了一下,基本上toString后的参数规定可以是2-36之间的任意整数,不写的话默认是10(也就是十进制),此时返回的值就是那个随机数. 若是偶数,返回的数值字符串都是短的,若是奇数,则返回的将是一个很大长度的表示值. 若<10 则都是数字组成,>10 才会包含字

CSS解决无空格太长的字母,数字不会自动换行的问题

其实很简单,代码如下所示,注意 Style: <div class="detail_title" style="word-break: break-all;"><%=StringUtil.toHTML(title) %></div> 默认情况下,一个 DIV或者其他元素的文本,如果都是无文字分隔符,无空格,则不会自动换行,比如: <div class="detail_title" style="