我自己写的JAVA小程序,统计字符串中的大写字母,小写字母,数字,其他出现的次数!提示找不到符号
importjava.util.*;publicclassEx_12{publicstaticvoidmain(String[]args){intletter=0;int...
import java.util.*;
public class Ex_12
{
public static void main(String[] args)
{
int letter=0;
int Letter=0;
int digit=0;
int other=0;
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();
}
for(int i=0;i<=ch.length;i++)
{
if(ch[i]>='a' && ch[i] <='z')
letter++;
else if(ch[i]>='A' && ch[i]<='Z')
Letter++;
else if(ch[i]>='0' && ch[i]<='9')
digit++;
else
other++ ;
}
System.out.println("letter=:"+letter);
System.out.println("Letter=:"+Letter);
System.out.println("digit=:"+digit);
System.out.println("other=:"+other);
}
} 展开
public class Ex_12
{
public static void main(String[] args)
{
int letter=0;
int Letter=0;
int digit=0;
int other=0;
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();
}
for(int i=0;i<=ch.length;i++)
{
if(ch[i]>='a' && ch[i] <='z')
letter++;
else if(ch[i]>='A' && ch[i]<='Z')
Letter++;
else if(ch[i]>='0' && ch[i]<='9')
digit++;
else
other++ ;
}
System.out.println("letter=:"+letter);
System.out.println("Letter=:"+Letter);
System.out.println("digit=:"+digit);
System.out.println("other=:"+other);
}
} 展开
3个回答
展开全部
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的长度,只能小于,虽然编译能通过,但运行时会报数组下标越界的错误。
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 这个类就知道了
展开全部
因为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();
*********************************************************
这样就好了
把你的
***********************************************************
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();
*********************************************************
这样就好了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-10-02
展开全部
我的API文档里怎么没有nextchar()这方法呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询