库里斯托 2023-04-12 19:58 采纳率: 91.1%
浏览 8
已结题

关于多维数组储存的相关问题

package zhiyin;
import java.util.ArrayList;
import java.util.Scanner;
class adw {
    public static void main(String[] args) {
        String[][][][] stu = new String[100][][][];
        Scanner sc = new Scanner(System.in);
        int i = 1;
        int j = 0;
        int k = 1;
        int l = 1;
        while (true) {
            String s = sc.next();
            String[] token = s.split(",");
            if (token[0].toCharArray()[4] == 0 && token[0].toCharArray()[5] == i) {
                if (token[0].toCharArray()[0] == 2 && token[0].toCharArray()[1] == 0 && token[0].toCharArray()[2] == 2 && token[0].toCharArray()[2] == j) {
                    if (token[0].toCharArray()[6] == 0 && token[0].toCharArray()[7] == k) {
                        if (token[0].toCharArray()[8] == 0 && token[0].toCharArray()[9] == l) {
                            stu[i - 1][j + 1][k - 1][l - 1] =s;
                            student olo = new student(s.split(",")[0],s.split(",")[1],s.split(",")[2],s.split(",")[3],s.split(",")[4]);
                        } l++;
                    } k++;
                } j++;
            } i++;
        }
        Find(stu);
    }
    //输入学号,然后查找出相关信息
    public static void Find(String[][][][] std){
        Scanner sa = new Scanner(System.in);
        String[][][][] std = new String[100][][][];
        int i = 1;
        int j = 0;
        int k = 1;
        int l = 1;
        while (true) {
            String ID = sa.next();
            if (ID.toCharArray()[4] == 0 && ID.toCharArray()[5] == i) {
                if (ID.toCharArray()[0] == 2 && ID.toCharArray()[1] == 0 && ID.toCharArray()[2] == 2 && ID.toCharArray()[2] == j) {
                    if (ID.toCharArray()[6] == 0 && ID.toCharArray()[7] == k) {
                        if (ID.toCharArray()[8] == 0 && ID.toCharArray()[9] == l) {
                            System.out.println(std[i - 1][j + 1][k - 1][l - 1]);
                        } l++;
                    } k++;
                } j++;
            } i++;
        }
    }
    
    
}
class student{
    String stuID;
    String stuName;
    String[] score = new String[3];
    public student(String stuID, String stuName, String x,String y,String z) {
        this.stuID = stuID;
        this.stuName = stuName;
        this.score[0] = score[0];
        this.score[1] = score[1];
        this.score[2] = score[2];
    }

    public String getStuID() {
        return stuID;
    }

    public String getStuName() {
        return stuName;
    }

    public String getScore0() {
        return score[0];
    }
    public String getScore1() {
        return score[1];
    }
    public String getScore2() {
        return score[2];
    }
    public String toString() {
        return "student{stuID = " + stuID + ", stuName = " + stuName + ", score1 = " + score[0] + ",score2="+score[1]+",score3="+score[2]+"}";
    }
}

img

代码中26行和31有误,如何修改?
上图是题目要求,目前代码还能如何优化?

  • 写回答

1条回答 默认 最新

  • pzzhao 2023-04-12 21:40
    关注
    1. 你main方法中的while(true) 循环是个死循环,没有跳出。所以这个代码 Find(stu); 执行不到就报错了
    2. 你的Find 方法中的入参名称std和你方法内定义的局部变量名称std重复了,你自己检查下到底应该用哪个变量。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月20日
  • 已采纳回答 4月12日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,