Java 如何修改此数组输入代码?

Java 如何修改此数组输入代码?,java,arrays,Java,Arrays,如果数据的格式有问题,您会对以下代码做什么,特别是检查数组标记是否有两个元素,并通知用户,但继续接受输入。你会怎么做?另外,您如何接受“退出”、输入名称和获取名称的输入?代码如下: import java.util.Scanner; public class ArrayInput { public static void main(String args[]) { Scanner s = new Scanner(System.in); String b;

如果数据的格式有问题,您会对以下代码做什么,特别是检查数组标记是否有两个元素,并通知用户,但继续接受输入。你会怎么做?另外,您如何接受“退出”、输入名称和获取名称的输入?代码如下:

import java.util.Scanner;

public class ArrayInput {
    public static void main(String args[]) {
        Scanner s = new Scanner(System.in);
        String b; 
        String student[] = new String [50];
        String mark [ ]= new String [50];
        int i = 0;
        while ((b = s.nextLine()) != null){
            if (b.equals("quit")){
                break;
            }
            String Tokens[] = b.split(' ');
            // System.out.println(Tokens[0] + ' ' + Tokens[1]);
            student[i] = Tokens[0];
            mark[i] = Tokens[1];
            i++;
        }
        for(int j = 0; j < i; j++) {
            System.out.println(student[j] + ' ' + mark[j]);
        }
    }
}
import java.util.Scanner;
公共类阵列输入{
公共静态void main(字符串参数[]){
扫描仪s=新的扫描仪(System.in);
b串;
字符串学生[]=新字符串[50];
字符串标记[]=新字符串[50];
int i=0;
而((b=s.nextLine())!=null){
如果(b.等于(“退出”)){
打破
}
字符串标记[]=b.split(“”);
//System.out.println(令牌[0]+''+令牌[1]);
学生[i]=代币[0];
标记[i]=代币[1];
i++;
}
对于(int j=0;j
尝试以下方法:

while ((b=s.nextLine()) != null)
{
    if (b.equals("quit")) break ;
    String Tokens[] = b.split(' ');
    if (Tokens.length == 2) {
        student[i]=Tokens[0];
        mark[i]=Tokens[1];
        i++;         
    } else {
       //inform user that its format is incorrect..
    }
    // System.out.println(Tokens[0] + ' ' + Tokens[1]);
}

使用并行阵列是一种反模式。使用
映射
或甚至是
列表
。这是一种教科书式的对象拒绝案例。您应该有一个对象来存储
student
mark
。假设您想按
标记进行排序
,使用两个数组很难正确地进行排序。