private String getJob_level_dis(String job_level) { String job_level_dis = ""; String[] job_levels = job_level.replaceAll("级", "").split("-"); int first_level = 0; int last_level = 0; //如果开始级别为C2,不是唯一的C,则获取具体级别,写入时要写入给定级别后面的岗位级别(C2,C3),不是从C1开始写入 if(job_levels[0].length()>1){ first_level = Integer.parseInt(job_levels[0].substring(1)); } //如果结束级别为C2,不是唯一的C,则获取具体级别,写入时要写入给定级别前面的岗位级别(C1,C2),没有C3 if(job_levels[1].length()>1){ last_level = Integer.parseInt(job_levels[1].substring(1)); } //获取大的级别 char first = job_levels[0].charAt(0); char last = job_levels[1].charAt(0); char temp = first; while(true){ //每个岗位级别默认有3级 for(int i=1;i<=3;i++){ //开始岗位级别要大于等于给定级别才会写入 if(i<first_level&&temp==first){ continue; }else if(temp==last&&i>last_level&&last_level!=0){//结束岗位级别要小于等于给定级别才会写入,如果是0则从头写入(1-3) continue; } String temp_dis = String.valueOf(temp)+i; job_level_dis += temp_dis+","; } //岗位级别加1 temp = (char) (temp+1); //不到结束岗位则继续写入 if(temp<=last){ continue; } break; } //将结尾多余的逗号舍去并返回 return job_level_dis.substring(0, job_level_dis.lastIndexOf(",")); }
先附上一份代码,写这份代码时遇到的主要问题就是对字母进行加减,网上查了资料来做,自己整理了一下,写出如上代码,供以后学习使用。