java怎样实别一串字符中有多少个数字多少个大小写字母

 我来答
samismiling
推荐于2018-04-28 · 知道合伙人软件行家
samismiling
知道合伙人软件行家
采纳数:1340 获赞数:5603

向TA提问 私信TA
展开全部

如下代码提供了三种方式统计一个字符串中出现的大小写字母和其他字符:

class Test
{
       publicstatic 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);                 
       }
}
百度网友77b129d416d
2011-03-01 · TA获得超过542个赞
知道小有建树答主
回答量:438
采纳率:0%
帮助的人:398万
展开全部
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帮助啊 我下过 结果都是错了 帮帮我嘛 谢谢了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
2011-03-01 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
public class Du {

public 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++;
}
}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yixc
2011-03-01
知道答主
回答量:59
采纳率:0%
帮助的人:20万
展开全部
要是我,我就用正则替换所有非数字非大小写字母然后length一下,呵呵
追问
它是输入进来了 怎么知道那些是非数字非大小写字母呢????????????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
masong110
2011-03-01 · TA获得超过210个赞
知道答主
回答量:370
采纳率:0%
帮助的人:228万
展开全部
把字符串每一个字符转成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++;
}
比较好了再往自己定义的变量里加
手边没有工具,大致写写。这个小练习以前写过。具体算法是这样,但没有什么实际意义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式