ArrayList<String> list = new ArrayList<>(); ArrayList<Integer> list1 = new ArrayList<>(); for(int i = 0; i< array.length;i++){ if(isNumber(array[i])){ list1.add(Integer.parseInt(array[i])); } else list.add(array[i]); } String [] myString = list.toArray(new String[0]); Integer[] myInt = list1.toArray(new Integer[0]); int[] sortedInt = new int[myInt.length]; boolean isSorted = false; while (!isSorted){ isSorted = true; for(int i = 1; i < myInt.length; i++){ if(myInt[i]<myInt[i-1]){ int temp = myInt[i-1]; myInt[i-1] = myInt[i]; myInt[i] = temp; isSorted = false; } } } for(int i = 0, a = myInt.length-1; i<sortedInt.length; i++,a--){ sortedInt[i] = myInt[a]; } isSorted = false; while (!isSorted){ isSorted = true; for(int i = 1; i < myString.length;i++){ if (isGreaterThan(myString[i-1],myString[i])){ String temp = myString[i-1]; myString[i-1] = myString[i]; myString[i] = temp; isSorted = false; } } } for(int i = 0, a = 0, b = 0; i<array.length; i++){ if(isNumber(array[i])){ String q = Integer.toString(sortedInt[b]); array[i] = q; b++; continue; } else array[i] = myString[a]; a++; } Какое простое есть решение у этой задачи? А то тут костылей - будь здоров.