区块链技术博客
www.b2bchain.cn

标题: 为甚么字符串数组出了循环不能保存?

b2bchain.cn区块链技术社区提供第26692篇技术文章标题: 为甚么字符串数组出了循环不能保存?
问题解答:

为甚么字符串数组出了循环不能保存?

主函数大致如下:

标题: 为甚么字符串数组出了循环不能保存?程序代码:
package Student; import java.util.*; public class Main {     public static void main(String[] args) throws Exception {         Scanner input=new Scanner(System.in);         Student[] sts = {              new Student("101", "wang"),              new Student("102", "li"), new Student("103", "zhang"),             new Student("104", "qiao"), new Student("105", "wu") };         while(true) {             String[] in =input.nextLine().split("\s+"); //正则表达式分割空格             // 操作             if(in[0].equals("exit")) {                 System.out.println(sts.length);                 break;             }                 switch(in[0]) {                 case "add": Student.add(sts, in[1], in[2],true); break;                 case "delete": Student.delete(sts, in[1], in[2]); break;                 case "update": Student.update(sts, in[1], in[2]); break;             }         }     } }

Student.class如下:

标题: 为甚么字符串数组出了循环不能保存?程序代码:
package Student; import import import java.util.Arrays;  class Student implements Comparable<Student>{        private String sno;          //学号        private String sname;        //姓名        public Student(String sno,String sname){          this.sno=sno;  this.sname=sname;        }        public String getSno()    { return this.sno;     }        public String getSname(){ return this.sname; }                public void updateName(String s) { sname=s;  }        //         public static void add(Student[] sts,String no,String name,boolean isPrint) throws Exception{               // 检验该学生是否已经存在            boolean isIn=false;                for(int i=0;i<sts.length;i++)                    if(no.equals(sts[i].getSno()))                       isIn=true;               if(isIn)                   throw new Exception("无法新增,学号与已有学生信息重复");               // 不存在则扩容并加入            sts=Arrays.copyOf(sts, sts.length+1);            sts[sts.length-1]=new Student(no,name);              if(isPrint)                sortAndPrint(sts);        }        // sort的实现        public int compareTo(Student a) {            return Integer.parseInt(this.getSno())>=Integer.parseInt(a.getSno())? 1:-1;         }        // 排序输出        public static void sortAndPrint(Student[] sts) {            Arrays.sort(sts);            for(int i=0;i<sts.length;i++)                 System.out.println(sts[i]);        }        // toString类        public String toString() {            return this.sno+" "+this.sname;        } } 

其他方法(删除、更新学生)类似,我的问题是为甚么我使用add函数后不能永久的保存数据?
一种图片可能表述的更清晰:

图片附件: 游客没有浏览图片的权限,请 登录注册

标题: 为甚么字符串数组出了循环不能保存? 由www.b2bchain.cn 提供
文章整理自网络,只为个人学习与分享使用
链接地址https://www.b2bchain.cn/?p=26692

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 标题: 为甚么字符串数组出了循环不能保存?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们