初学JAVA问一个关于SCANNER的问题 5

importjava.util.Scanner;publicclassstudent{String姓名;int年龄;String性别;String专业;publicstu... import java.util.Scanner;

public class student {

String 姓名;
int 年龄;
String 性别;
String 专业;
public student(String 姓名,int 年龄){
this.姓名=姓名;
this.年龄=年龄;
this.性别="男性";
this.专业="PEDEV";

}
public void 自我介绍(student a){
System.out.println("姓名:"+a.姓名);
System.out.println("年龄:"+a.年龄);
System.out.println("专业:"+a.专业);
System.out.println("性别:"+a.性别);
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String 姓名=input.next();
int 年龄=input.nextInt();

student me=new student( 姓名, 年龄);
me.自我介绍(me);
}

}

以上就是我的代码,但输入中文姓名或长一点的英文姓名后,必然造成之后输入的年龄报错.上网看过,原因是next()方法不允许连用...但那个解释不是太明白,请问哪位高手能详细地解释下,顺便修正下我的代码.谢谢
展开
 我来答
洗净了的尘埃
2011-04-25 · TA获得超过209个赞
知道答主
回答量:176
采纳率:0%
帮助的人:133万
展开全部
你输入的姓名和年龄之间好像要加上空格或者换行。你试一试?
更多追问追答
追问
什么叫之间加上空格或者换行?能写一写相关代码吗?谢谢
追答
比如输入: name 23
格式是:姓名(空格)年龄
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenyu398
2011-04-25 · TA获得超过532个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:163万
展开全部
JAVA 里没有用 中文做为变量名和方法名的,你把他们全部换成英文试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heganglaoda
2011-04-26 · TA获得超过204个赞
知道小有建树答主
回答量:179
采纳率:100%
帮助的人:171万
展开全部
Scanner 类的next()方法 是以空格或回车为分隔符的,如果你输入第一行时中间有空格则会报异常
java.util.InputMismatchException;比如说输入: lang as
就会报异常编译时会把lang作为你的姓名,as作为你的年龄它是字符串不能用int转换;
如果输入:lang 23
就能成功打印出来。一般对于字符串接受用nextLine()方法比较好,这是接受一正行的数据,是以回车键为分隔符的,即使中间有空格也不会报错的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式