我是一个新的Java的C++程序员,并且在字符串(或属性或任何类)的字符串中遇到麻烦。基本的Java程序:字符串对象将不会输入
import java.util.Scanner;
class Student{
String name;
static int count=0;
int regno;
double marks;
Student(){
count++;
}
static void getCount(){
System.out.println("Count is "+count);
}
void setName(String n1){
name=n1;
}
void setMarks(double m1){
marks=m1;
}
void setRegNo(int rno){
regno=rno;
}
String getName(){
return name;
}
int getRegNo(){
return regno;
}
double getMarks(){
return marks;
}
}
class Demo{
int i;
Student s[]=new Student[3];
Scanner in=new Scanner(System.in);
Demo(){
for(i=0;i<3;i++){
s[i]=new Student();
System.out.println("Enter name of student "+(i+1)+" :");
s[i].setName(in.nextLine());
System.out.println("Enter Reg. No. of student "+(i+1)+" :");
s[i].setRegNo(in.nextInt());
System.out.println("Enter marks of student "+(i+1)+" :");
s[i].setMarks(in.nextDouble());
}
}
public void Display(){
System.out.println("Students with marks >70 : ");
System.out.println("RegNo\tName\tMarks\t");
for(i=0;i<3;i++){
System.out.println(s[i].getRegNo()+"\t"+s[i].getName()+"\t"+s[i].getMarks());
}
}
}
class P4{
public static void main(String args[]){
Demo d=new Demo();
d.Display();
}
}
输出:
Enter name of student 1 :
1
Enter Reg. No. of student 1 :
1
Enter marks of student 1 :
100
Enter name of student 2 :
Enter Reg. No. of student 2 :
2
Enter marks of student 2 :
100
Enter name of student 3 :
Enter Reg. No. of student 3 :
3
Enter marks of student 3 :
100
Students with marks >70 :
RegNo Name Marks
1 1 100.0
2 100.0
3 100.0
的麻烦: 从for循环的第二次迭代,则直接要求我输入REGNO和标记跳过名称String.I不明白怎么它适用于第一次迭代,但不适用于其他人。请解释我在这里出了什么问题。
大!!工作,只需要用in.next()替换in.nextLine()。 (我希望Scanner的缓冲区清除自己,但它没有) – Shridharshan 2014-09-03 08:21:55