用java写一个小程序

题目是这样的:编写一个程序,这个程序不断地读取从键盘上输入的字符,直到读到字符‘q’时,程序结束。我写的程序是这样的:importjava.util.Scanner;pu... 题目是这样的:编写一个程序,这个程序不断地读取从键盘上输入的字符,直到读到字符‘q’时,程序结束。我写的程序是这样的:import java.util.Scanner;
public class Example2_10{
public static void main(String args[]){
System.out.println("请输入若干个字符,最后输入字符q结束");
Scanner s=new Scanner(System.in);
int x=s.nextInt();
char w=(char) x;
while(x!='q'){
x=s.nextInt();
}
}
}
虽然能编译成功,但只有输入数字时才能正确运行,输入113就停止,每当输入字符就提示Exception in thread "main" java.util.InputMismatchException,怎么样在命令提示符里输入字母也能使它正确运行?
展开
 我来答
198901245631
2015-11-03 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1710万
展开全部
java实现先输入10个int类型的参数,之后循环判断找到最大值和最小值,保存起来和其他的值进行比较。代码如下:
public class Test{
public static void main(String args[]){
int i,min,max;
int A[] = new int[10];
Scanner input=new Scanner(System.in);
for(int j=0,j<10;j++){//输入10个数

System.out.println("请输入一个数字:");
int length=input.nextInt();//输入一个数字
A[i] =length;
}
min=max=A[0];
System.out.print("数组A的元素包括:");
int j =0;
int n =0 ;
for(i=0;i<A.length;i++)
{
System.out.print(A[i]+" ");
if(A[i]>max) // 判断最大值
j =i;
max=A[i];
if(A[i]<min) // 判断最小值
min=A[i];
n =i
}
System.out.println("\n数组的最大值是:"+max+".数组的位置是:"+(j+1)); // 输出最大值和最大值的位置
System.out.println("数组的最小值是:"+min+".数组的位置是:"+(n+1)); // 输出最小值
}
}
germany911
2011-10-28
知道答主
回答量:13
采纳率:0%
帮助的人:7.4万
展开全部
System.out.println("请输入若干个字符,最后输入字符q结束");
Scanner s=new Scanner(System.in);
char[] x=s.next().toCharArray();
while(x[x.length-1]!='q'){
x=s.next().toCharArray();
}
你要采纳的那个答案完全完不成你要实现的功能。。。
追问
这位仁兄,不好意思啊,虽然你的答案也是对的,但是你晚来了一步,在你解决之前,我已经提前答应了3楼的那位仁兄,他也很辛苦,你也很强,对不住了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hao_wen123
推荐于2017-11-24 · TA获得超过301个赞
知道答主
回答量:194
采纳率:0%
帮助的人:99.2万
展开全部
public static void main(String args[]){
System.out.println("请输入若干个字符,最后输入字符q结束");
Scanner s=new Scanner(System.in);
String x=s.next();

while(!(x.equals("q"))){
System.out.println(x);
x=s.next();

}
}哥哥呀 采纳啊,搞了10分钟呢 嘿嘿
追问
你放心,最佳答案已经是你了,我一定会采纳你的,不过在此之前我想跟你聊两句,你为什么会想到用字符串,之前我查过,有人用的是强制转换,将int转换为char,后来效果不好,而且出现了上面的问题,只能输入数字
追答
因为转型容易出错的,不怕你笑话,我一个方法一个方法试的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邗启3V
2011-10-28 · TA获得超过7270个赞
知道大有可为答主
回答量:1413
采纳率:100%
帮助的人:1385万
展开全部
int x=s.nextInt();
你获取方式是得到一个int的整形,所以只能输入数字
你把int x=s.nextInt();
改成String x=s.next();就可以了
追问
还是不行啊,我把程序改成了import java.util.Scanner;
public class Example2_10{
public static void main(String args[]){
System.out.println("请输入若干个字符,最后输入字符q结束");
Scanner s=new Scanner(System.in);
String x=s.next();
while(x!="q"){
x=s.next();
}
}
}
这次也能编译,而且在命令提示符里输入数字和字符都不提示错误,但输入q时,它也不停止了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
coffeejam4c
2011-10-28
知道答主
回答量:3
采纳率:0%
帮助的人:4997
展开全部
你W没用? 输入因为小q的ASCII码是113, 在判断x!='q'时强制转换成ASCII判断,因为nextINit输入要求整形 所以输入字符出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式