java怎样实别一串字符中有多少个数字多少个大小写字母
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎样实别一串字符中有多少个数字多少个大小写字母相关的知识,希望对你有一定的参考价值。
如下代码提供了三种方式统计一个字符串中出现的大小写字母和其他字符:
class Testpublicstatic void main(String[] args)
String str = "abAM1,!23";
int cntU = 0; //大写字母的个数
int cntL = 0; //小写字母的个数
int cntOther = 0;
int i;
//第二种方法
String s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String s2 ="abcdefghijklmnopqrstuvwxyz";
for (i=0; i<str.length(); ++i)
charch = str.charAt(i);
if(-1 != (s1.indexOf(ch)))
cntU++;
elseif (-1 != s2.indexOf(ch))
cntL++;
else
cntOther++;
// //方法二
// for (i=0; i<str.length(); ++i)
//
// charch = str.charAt(i);
// if(Character.isUpperCase(ch))
// cntU++;
// elseif (Character.isLowerCase(ch))
// cntL++;
// else
// cntOther++;
//
//方法三
// for (i=0; i<str.length(); ++i)
//
// charch = str.charAt(i);
// if(ch>=\'a\' && ch<=\'z\')
// cntL++;
//
// elseif (ch>=\'A\' && ch<=\'Z\')
// cntU++;
//
// else
// cntOther++;
//
//
System.out.printf("大写字母个数: %d\\n", cntU);
System.out.printf("小写字母个数: %d\\n", cntL);
System.out.printf("非字母个数: %d\\n", cntOther);
参考技术A public static void main(String[] args)
String a = "190AZaz";
int countNum = 0;
int countA = 0;
int counta = 0;
for(int i = 0;i < a.length();i++)
if((byte)a.charAt(i)>47 && (byte)a.charAt(i)<58)
countNum++;
else if((byte)a.charAt(i)>64 && (byte)a.charAt(i)<91)
countA++;
else if((byte)a.charAt(i)>96 && (byte)a.charAt(i)<123)
counta++;
System.out.println("数字有"+countNum+"个,大写字母有"+countA+"个,小写字母有"+counta+"个");
运行结果:
数字有3个,大写字母有2个,小写字母有2个追问
"charAt"这有什么用呢 是不是把它转换成数字啊 你们有没有java帮助啊 我下过 结果都是错了 帮帮我嘛 谢谢了
本回答被提问者采纳 参考技术B public class Dupublic static void main(String[] args)
String str = "asdfasfs3242sdadfasd";
int carcCount = 0;//保存字符
int digitCount = 0;//保存大小写字母数量
for(int i = 0; i < str.length(); i++)
if(String.valueOf(str.charAt(i)).matches("[0-9]"))
digitCount++;
else if(String.valueOf(str.charAt(i)).matches("[a-zA-Z]"))
carcCount++;
参考技术C 要是我,我就用正则替换所有非数字非大小写字母然后length一下,呵呵追问
它是输入进来了 怎么知道那些是非数字非大小写字母呢????????????
参考技术D 把字符串每一个字符转成CHAR型,再循环比较这个字符是什么。(字符是由ASCII码来的比如‘A’就是65)//输入字符
String ts = "1235AbCd";
//计数器(数字个数)
int isNum=0;
//计算器(字母个数)
int alf= 0;
for(int i=1; i=ts.lenth; i++)
char cs = ts.subString(i,1).toChar();
if(cs >=0 || cs <9)
isNum++;
if(cs >=65 || cs <=93)
alf++;
比较好了再往自己定义的变量里加
手边没有工具,大致写写。这个小练习以前写过。具体算法是这样,但没有什么实际意义。
以上是关于java怎样实别一串字符中有多少个数字多少个大小写字母的主要内容,如果未能解决你的问题,请参考以下文章