файлы a.b.c1 a.b.c12 a.b.c2 Сохраняет в файл a.b a.b.c1a.b.c2a.b.c12 import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.Comparator; import java.util.Set; import java.util.TreeSet; /* Собираем файл */ import java.util.*; import java.io.*; import java.util.regex.*; class Solution { public static void main(String[] args) throws Exception { String sit="/storage/emulated/0/f.f.1\n/storage/emulated/0/f.f.2\n/storage/emulated/0/f.f.12\nend"; //String sit="k.a.f1\nk.a.f4\nk.a.f12\nend"; //BufferedReader reader=new BufferedReader(new InputStreamReader(new ByteArrayInputStream(sit.getBytes()))); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String name1=""; //BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("/storage/emulated/0/f.f.1"))); //bw.write("0123456"); //bw.close(); //if(1==1)return; List<String> list=new ArrayList<String>(); while(!((name1=reader.readLine()).equals("end"))){ list.add(name1); } ArrayList il=new ArrayList(); for(int xn=0;xn<list.size()-1;xn++){ String s=list.get(xn); Pattern pt = Pattern.compile(".+([0-9]+)",Pattern.CASE_INSENSITIVE); Matcher mtch=pt.matcher(s); int num=0; while(mtch.find()){ num=Integer.parseInt((mtch.group(1))); } int i=num; il.add(i); } //sort(il,list); ArrayList l1=il; List<String> l2=list; List<Integer> arr=l1; int n=arr.size(); int temp=0;String temp2=""; for(int i=0;i<n;i++){ for(int j=1;j<(n-i);j++){ if(arr.get(j-1)>arr.get(j)){ temp=arr.get(j-1); temp2=l2.get(j-1); arr.set(j-1,arr.get(j)); arr.set(j,temp); l2.set(j-1,l2.get(j)); l2.set(j,temp2); }}} //Collections.sort(list); //System.out.println(list); String[] sti=list.get(0).split("\\."); String si=""; String[] is=new String[sti.length-1]; for( int kin=0;kin<sti.length-1;kin++){ is[kin]=sti[kin]; } String ag="".join(".",is); //System.out.println(ag+" "+list); FileOutputStream fos=null; fos=new FileOutputStream(ag); if(1==1){ //return; } for(String st:list){ FileInputStream fis=null; //System.out.println(name1+" dfadasf"); try{ fis=new FileInputStream(st); }catch(FileNotFoundException e){ //e.printStackTrace(); return; } try{ byte[] b=new byte[fis.available()]; int ji=fis.read(b); fos.write(b,0,ji); fis.close(); }catch(IOException er){} }fos.close(); } /*public static void sort(ArrayList l1,List<String> l2){ List<Integer> arr=l1; int n=arr.size(); int temp=0;String temp2=""; for(int i=0;i<n;i++){ for(int j=1;j<(n-i);j++){ if(arr.get(j-1)>arr.get(j)){ temp=arr.get(j-1); temp2=l2.get(j-1); arr.set(j-1,arr.get(j)); arr.set(j,temp); l2.set(j-1,l2.get(j)); l2.set(j,temp2); }}} } public static int parse(String s){ //String s="20 hfjf fhfhf tjrr 3.1459 55"; Pattern pt = Pattern.compile(".+([0-9]+)",Pattern.CASE_INSENSITIVE); Matcher mtch=pt.matcher(s); //System.out.println(mtch.groupCount()+"jk");//+mtch.group(1)); //List a=new ArrayList(); int num=0; while(mtch.find()){ //System.out.println(mtch.group(1)+mtch.group(2)+mtch.group(3)+mtch.group(4)); num=Integer.parseInt((mtch.group(1))); //a.add(mtch.group(2)); //a.add(mtch.group(3)); //a.add(mtch.group(4)); } return num; }*/ }