库里斯托 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日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度