未打印字符串名称 import java.util.*; //学生班 班级学生{ 字符串名; int-rollNo; 学生(字符串名称,int-rollNo){ this.name=新字符串(name); this.rollNo=rollNo; } } 课堂演示{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); int x=in.nextInt(); int noOfStudents=in.nextInt(); 学生[]学生名单=新学生[无学生]; PriorityQueue集合=新建PriorityQueue(新建比较器(){ 公共整数比较(学生a、学生b){ 返回b.rollNo-a.rollNo; } }); 对于(int i=0;i
未打印字符串名称 import java.util.*; //学生班 班级学生{ 字符串名; int-rollNo; 学生(字符串名称,int-rollNo){ this.name=新字符串(name); this.rollNo=rollNo; } } 课堂演示{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); int x=in.nextInt(); int noOfStudents=in.nextInt(); 学生[]学生名单=新学生[无学生]; PriorityQueue集合=新建PriorityQueue(新建比较器(){ 公共整数比较(学生a、学生b){ 返回b.rollNo-a.rollNo; } }); 对于(int i=0;i,java,string,Java,String,import java.util.*; //student class class Student{ String name; int rollNo; Student(String name, int rollNo){ this.name=new String(name); this.rollNo=rollNo; } } class Demo { public static void main (St
import java.util.*;
//student class
class Student{
String name;
int rollNo;
Student(String name, int rollNo){
this.name=new String(name);
this.rollNo=rollNo;
}
}
class Demo {
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
int x = in.nextInt();
int noOfStudents = in.nextInt();
Student[] StudentList= new Student[noOfStudents];
PriorityQueue<Student> set=new PriorityQueue<Student>(new Comparator<Student>(){
public int compare(Student a, Student b){
return b.rollNo-a.rollNo;
}
});
for(int i=0;i<noOfStudents;i++){
String name = in.nextLine();
in.nextLine();
int rollNo = in.nextInt();
set.add(new Student(name,rollNo));
}
while(!set.isEmpty()){
Student tmp = set.poll();
System.out.println(tmp.name+" "+tmp.rollNo);
}
}
}
借
您可以在此处找到问题的完整解释:更改:
in.nextLine();
String name = in.nextLine();
int rollNo = in.nextInt();
到
我认为这个版本的工作原理与您从图片中看到的一样。我添加了这一行: in.nextLine();//它使用换行符并移动到下一行的开头 代码如下:
String name = in.next();
int rollNo = in.nextInt();
import java.util.*;
//学生班
班级学生{
字符串名;
int-rollNo;
学生(字符串名称,int-rollNo){
this.name=新字符串(name);
this.rollNo=rollNo;
}
}
公共班机{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
System.out.println(“请输入学生人数”);
int noOfStudents=in.nextInt();
学生[]学生名单=新学生[无学生];
PriorityQueue集合=新建PriorityQueue(新建比较器(){
公共整数比较(学生a、学生b){
返回b.rollNo-a.rollNo;
}
});
对于(int i=0;i在.nextLine()中移动;
在int rollNo=in.nextInt()之后移动;
顺便说一句。您几乎不应该调用新字符串
。它强制JVM始终创建新对象,并且不能使用缓存的对象。仍然不工作!
String name = in.nextLine();
in.nextLine();
int rollNo = in.nextInt();
String name = in.next();
int rollNo = in.nextInt();
import java.util.*;
//student class
class Student{
String name;
int rollNo;
Student(String name, int rollNo){
this.name=new String(name);
this.rollNo=rollNo;
}
}
public class Main {
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Inert the number of students, please");
int noOfStudents = in.nextInt();
Student[] StudentList= new Student[noOfStudents];
PriorityQueue<Student> set=new PriorityQueue<Student>(new Comparator<Student>(){
public int compare(Student a, Student b){
return b.rollNo-a.rollNo;
}
});
for(int i=0;i<noOfStudents;i++){
in.nextLine(); // it consumes the newline and moves to the starting of the next line.
System.out.println("Enter the student's name "+i);
String name = in.nextLine();
System.out.println("Enter the student ID number "+i);
int rollNo = in.nextInt();
set.add(new Student(name,rollNo));
}
while(!set.isEmpty()){
Student tmp = set.poll();
System.out.println(tmp.name.toString()+" "+tmp.rollNo);
}
}
}