Выдаёт четыре аж ошибки при проверке:
Программа должна выводить текст на экран.
Метод main() должен вызывать метод sort().
Метод sort() должен вызывать метод isGreaterThan().
Выведенные слова должны быть отсортированы в алфавитном порядке.
Тут есть, правда, нюанс, я делал это упражнение в Intellij IDEA - собственно это первая прога, которую я там написал, потому что в браузере она не влезала, может этот косяк связан с моим владением Intellij IDEA?
Сортировка вроде бы выполняется, всего три метода, каждый метод вызывается откуда надо.
Вдогонку хочу спросить вопрос по функционалу: я не нашел функцию, которая бы сравнивала больше-меньше буквы или слова, поэтому пришлось писать всё через switch. Подскажите на будущее более простой метод сравнения слов (без коллекций)?
package com.javarush.task.task08.task0830;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Задача по алгоритмам
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] array = new String[20];
boolean bool1=false;
for (int i = 0; i < array.length; i++) {
array[i] = reader.readLine();
}
sort(array);
for (String word : array) {
System.out.println(word);
}
}
public static void sort(String[] array) {
String str1;
int bool1=0;
for (int i = 0; i < (array.length-1); i++) { //первое слово
for (int j = i+1; j < array.length; j++) { // второе слово
for (int k= 0; k < array[i].length(); k++) { //для каждой буквы в первом слове
if(k<=array[j].length()) { //если в первой строке не больше букв чем во второй
bool1 = isGreaterThan (array[i].substring(k, k+1), array[j].substring(k, k+1));
if (bool1==1) { //меняем местами слова
str1 = array[i];
array[i] = array[j];
array[j] = str1;
break;
}
else if (bool1==2) break;
}
}
}
}
}
//Метод для сравнения строк: 'а' больше чем 'b'
public static int isGreaterThan(String a, String b) {
int number1=0, number2=0;
a = a.toLowerCase();
b = b.toLowerCase();
switch (a) {
case ("а"): number1=1; break; case ("б"): number1=2; break;
case ("в"): number1=3; break; case ("г"): number1=4; break;
case ("д"): number1=5; break; case ("е"): number1=6; break;
case ("ё"): number1=7; break; case ("ж"): number1=8; break;
case ("з"): number1=9; break; case ("и"): number1=10; break;
case ("й"): number1=11; break; case ("к"): number1=12; break;
case ("л"): number1=13; break; case ("м"): number1=14; break;
case ("н"): number1=15; break; case ("о"): number1=16; break;
case ("п"): number1=17; break; case ("р"): number1=18; break;
case ("с"): number1=19; break; case ("т"): number1=20; break;
case ("у"): number1=21; break; case ("ф"): number1=22; break;
case ("х"): number1=23; break; case ("ц"): number1=24; break;
case ("ч"): number1=25; break; case ("ш"): number1=26; break;
case ("щ"): number1=27; break; case ("ь"): number1=28; break;
case ("ы"): number1=29; break; case ("ъ"): number1=30; break;
case ("э"): number1=31; break; case ("ю"): number1=32; break;
case ("я"): number1=33; break;
default: System.out.println("введена не русская буква"); break;
}
switch (b) {
case ("а"): number2=1; break; case ("б"): number2=2; break;
case ("в"): number2=3; break; case ("г"): number2=4; break;
case ("д"): number2=5; break; case ("е"): number2=6; break;
case ("ё"): number2=7; break; case ("ж"): number2=8; break;
case ("з"): number2=9; break; case ("и"): number2=10; break;
case ("й"): number2=11; break; case ("к"): number2=12; break;
case ("л"): number2=13; break; case ("м"): number2=14; break;
case ("н"): number2=15; break; case ("о"): number2=16; break;
case ("п"): number2=17; break; case ("р"): number2=18; break;
case ("с"): number2=19; break; case ("т"): number2=20; break;
case ("у"): number2=21; break; case ("ф"): number2=22; break;
case ("х"): number2=23; break; case ("ц"): number2=24; break;
case ("ч"): number2=25; break; case ("ш"): number2=26; break;
case ("щ"): number2=27; break; case ("ь"): number2=28; break;
case ("ы"): number2=29; break; case ("ъ"): number2=30; break;
case ("э"): number2=31; break; case ("ю"): number2=32; break;
case ("я"): number2=33; break;
default: System.out.println("введена не русская буква"); break;
}
if (number1 > number2) return 1; //менять местами
else if (number1 < number2) return 2; //оставить как есть
else return 0; //совпадают
}
}