【发布时间】:2022-01-18 13:29:35
【问题描述】:
我有几个来自用户的字符串输入(学生的注册人数),我必须根据他们的学习年份将它们存储到不同的数组中并打印输出。 例如,如果字符串以“18”开头,我必须将其存储为四年级学生。如果它以“19”开头,我必须将其存储为三年级学生,依此类推。
import java.util.Scanner;
public class reg {
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
System.out.println("Enter no of students");
int n = scan.nextInt();
scan.nextLine();
String[] arr = new String[n];
System.out.println("Enter registration numbers");
for(int i = 0;i<n;i++){
arr[i]=scan.nextLine();
}
String[] arr1 = new String[n];
String[] arr2 = new String[n];
String[] arr3 = new String[n];
String[] arr4 = new String[n];
String[] arr5 = new String[n];
for(int i = 0;i<n;i++){
if(arr[i].startsWith("18")){
for(int j = 0;j<n;j++){
arr1[j] = arr[i];
}
}
else if(arr[i].startsWith("19")){
for(int j = 0;j<n;j++){
arr2[j] = arr[i];
}
}
else if(arr[i].startsWith("20")){
for(int j = 0;j<n;j++){
arr3[j] = arr[i];
}
}
else if(arr[i].startsWith("21")){
for(int j = 0;j<n;j++){
arr4[j] = arr[i];
}
}
else{
for(int j = 0;j<n;j++){
arr5[j] = arr[i];
}
}
}
System.out.println("4th year students are");
for(int i = 0;i<n;i++){
System.out.println(arr1[i]);
System.out.println();
}
System.out.println("3rd year students are");
for(int i = 0;i<n;i++){
System.out.println(arr2[i]);
System.out.println();
}
System.out.println("2nd year students are");
for(int i = 0;i<n;i++){
System.out.println(arr3[i]);
System.out.println();
}
System.out.println("1st year students are");
for(int i = 0;i<n;i++){
System.out.println(arr4[i]);
System.out.println();
}
}
}
我得到的输出只是与我的条件匹配的最后一个输入被打印 n 次(学生输入的数量)。
我该如何解决这个问题?
编辑:
输入和预期输出:
学生人数:
7
输入注册号:
20ABC123
19ABC111
18ABC000
18ABC001
21ABX144
20ABX000
19ABC099
预期输出: 四年级学生是
18ABC000
18ABC001
三年级学生
19ABC111
19ABC099
二年级学生
20ABC123
20ABX000
一年级学生
21ABX144
【问题讨论】:
-
您是否有一些示例输入数据和预期结果可供测试?你做了什么调试?
-
你认为
for(int j = 0;j<n;j++){ arr1[j] = arr[i]; }是做什么的? -
for(int j = 0;j
-
@Pshemo 该代码至少对我来说不可读,预期的输出部分不清楚。这是提问的方式吗?
-
@Vikas Acharya 我编辑了问题