我自己写的JAVA小程序,统计字符串中的大写字母,小写字母,数字,其他出现的次数!提示找不到符号
发布网友
发布时间:2022-05-02 23:03
我来回答
共3个回答
热心网友
时间:2023-10-09 19:56
Scanner类中无nextChar()方法,无法一个字符一个字符的获取,但next()允许获取一个字符串,可以定义一个字符串保存输入,代码如下,
Scanner Input = new Scanner(System.in);
System.out.println("请输入字符串:");
String ch= Input.next();
因为ch为String类型,相应的后面for循环也要略作修改如下,
for (int i = 0; i < ch.length(); i++) {
if (ch.charAt(i) >= 'a' && ch.charAt(i) <= 'z') {
letter++;
} else if (ch.charAt(i) >= 'A' && ch.charAt(i) <= 'Z') {
Letter++;
} else if (ch.charAt(i) >= '0' && ch.charAt(i) <= '9') {
digit++;
} else {
other++;
}
}
另外你的代码这一句for(int i=0;i<=ch.length;i++)有个小错误,i不能小于等于ch的长度,只能小于,虽然编译能通过,但运行时会报数组下标越界的错误。追问if (ch.charAt(i) >= 'a' && ch.charAt(i) <= 'z')这句中的At是什么意思?
追答At不是单独的,charAt是一个整体,charAt()是String类里的一个方法,作用是获取一个字符串第 i 个索引处的字符(char)值,你看一下Java API里的java.lang.String 这个类就知道了
热心网友
时间:2023-10-09 19:56
因为SCANNER类中没有nextChar()函数,你直接用next接受一个字符串就好
把你的
***********************************************************
Scanner Input= new Scanner(System.in);
System.out.println("请输入字符串的长度:");
int a=Input.nextInt();
char ch[]=new char[a];
for(int i=0;i<=ch.length;i++)
{
System.out.println("请输入元素ch["+i+"]的值:" );
ch[i]=Input.nextchar();
}
*******************************************************************
这一部分改成
*********************************************************
Scanner Input = new Scanner(System.in);
System.out.println("请输入字符串");
String ch= Input.next();
*********************************************************
这样就好了
热心网友
时间:2023-10-09 19:57
我的API文档里怎么没有nextchar()这方法呢?