java怎样实别一串字符中有多少个数字多少个大小写字母
5个回答
展开全部
如下代码提供了三种方式统计一个字符串中出现的大小写字母和其他字符:
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);
}
}
展开全部
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个
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帮助啊 我下过 结果都是错了 帮帮我嘛 谢谢了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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++;
}
}
}
}
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++;
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要是我,我就用正则替换所有非数字非大小写字母然后length一下,呵呵
追问
它是输入进来了 怎么知道那些是非数字非大小写字母呢????????????
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把字符串每一个字符转成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++;
}
比较好了再往自己定义的变量里加
手边没有工具,大致写写。这个小练习以前写过。具体算法是这样,但没有什么实际意义。
//输入字符
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++;
}
比较好了再往自己定义的变量里加
手边没有工具,大致写写。这个小练习以前写过。具体算法是这样,但没有什么实际意义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询