初学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()方法不允许连用...但那个解释不是太明白,请问哪位高手能详细地解释下,顺便修正下我的代码.谢谢 展开
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()方法不允许连用...但那个解释不是太明白,请问哪位高手能详细地解释下,顺便修正下我的代码.谢谢 展开
3个回答
展开全部
你输入的姓名和年龄之间好像要加上空格或者换行。你试一试?
更多追问追答
追问
什么叫之间加上空格或者换行?能写一写相关代码吗?谢谢
追答
比如输入: name 23
格式是:姓名(空格)年龄
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JAVA 里没有用 中文做为变量名和方法名的,你把他们全部换成英文试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Scanner 类的next()方法 是以空格或回车为分隔符的,如果你输入第一行时中间有空格则会报异常
java.util.InputMismatchException;比如说输入: lang as
就会报异常编译时会把lang作为你的姓名,as作为你的年龄它是字符串不能用int转换;
如果输入:lang 23
就能成功打印出来。一般对于字符串接受用nextLine()方法比较好,这是接受一正行的数据,是以回车键为分隔符的,即使中间有空格也不会报错的。
java.util.InputMismatchException;比如说输入: lang as
就会报异常编译时会把lang作为你的姓名,as作为你的年龄它是字符串不能用int转换;
如果输入:lang 23
就能成功打印出来。一般对于字符串接受用nextLine()方法比较好,这是接受一正行的数据,是以回车键为分隔符的,即使中间有空格也不会报错的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询