public class Title4 { public static void main(String[] args){ ArrayList<String> list = bufferedReader(); // 确定每个院校 有多少个学生 String currentSch = ""; for(int i=0;i<list.size();i++){ //获取其中一个字串 String temp = list.get(i); //判断是否是院校 String r = "0123456789"; // System.out.println("提取的是:"+temp.charAt(0)); if(r.indexOf(temp.charAt(0))==-1){ //是院校 // System.out.println("学校"); currentSch = f(temp); }else{ String str = currentSch+""+student(temp); bufferedWriter(str); // System.out.println(currentSch+""+student(temp)); } } } //写入文件 public static void bufferedWriter(String str){ File f = new File("e:\\out.txt"); try{ if(!f.exists()){ f.createNewFile(); } BufferedWriter bw = new BufferedWriter(new FileWriter(f,true)); //文件写入不覆盖 bw.write(str); bw.write("\n"); bw.close(); }catch(Exception ex){ ex.printStackTrace(); } } //学生字符串的组合 public static String student(String str){ String[] arr = str.split(":"); //名字 组别 分数 号码 String[] temp = {arr[3],arr[1],arr[0],arr[2]}; while(temp[0].getBytes().length<12){ temp[0]+= " "; } while(temp[1].getBytes().length<10){ temp[1]+= " "; } while(temp[2].getBytes().length<4){ temp[2]+= " "; } while(temp[3].getBytes().length<16){ temp[3]+= " "; } String s = ""; for(int i=0;i<temp.length;i++){ s+=temp[i]; } return s; } //将 拼音 转换为地名 public static String f(String str){ String[] arr = str.split(":"); if(arr[3].equals("xijing")){ arr[3] = "西京"; }else if(arr[3].equals("lushan")){ arr[3] = "鲁山"; }else if(arr[3].equals("pingyang")){ arr[3] = "平阳"; }else if(arr[3].equals("danling")){ arr[3] = "丹凌"; }else if(arr[3].equals("xinyuan")){ arr[3] = "新元"; } //重新组合数组:代码 名称 电话 地区 String[] temp = {arr[2]+" ",arr[0],arr[1]+" ",arr[3]}; String s = ""; //确定院校名称的长度 while(temp[1].getBytes().length<30){ temp[1]+=" "; } //地区长度 while(temp[3].getBytes().length<8){ temp[3]+=" "; } for(int i=0;i<temp.length;i++){ s+=temp[i]; } return s; } //获取文档中的数据 public static ArrayList<String> bufferedReader(){ //这里的路径如果是相对路径的话:直接定位到工程的下一目录src/包名/文件名 File f = new File("C:\\Users\\Administrator\\Desktop\\蓝桥训练真题\\2011-决赛真题\\Java高职\\4\\in.txt"); ArrayList<String> list = new ArrayList<String>(); try{ BufferedReader br = new BufferedReader(new FileReader(f)); while(br.ready()){ list.add(br.readLine()); } br.close(); }catch(Exception ex){ ex.printStackTrace(); } return list; } }