вроде работает всё -ок, в чём проблема то?
package com.javarush.task.task08.task0830;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/* Задача по алгоритмам
Задача: Введи с клавиатуры 20 слов и выведи их в алфавитном порядке. Каждое слово - с новой строки.
Требования:
1. Программа должна выводить текст на экран.
2. Программа должна считывать значения с клавиатуры.
3. Класс Solution должен содержать три метода.
4. Метод main() должен вызывать метод sort().
5. Метод sort() должен вызывать метод isGreaterThan().
6. Выведенные слова должны быть отсортированы в алфавитном порядке.*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] array = new String[20];
for (int i = 0; i < array.length; i++) {
array[i] = reader.readLine();
}
// array[0] = "masda";
// array[1] = "mazda";
// array[2] = "duster";
// array[3] = "daster";
// array[4] = "bmv";
// array[5] = "bmw";
// array[6] = "acura";
// array[7] = "acurra";
// array[8] = "neksia";
// array[9] = "nexia";
sort(array);
for (String x : array) {
System.out.println(x);
}
}
public static void sort(String[] array) {
for (int i = 0; i < array.length - 1; i++)
{
for(int j = 0; j < array.length - 1; j++) {
int g = 0;
int q = 1;
if (isGreaterThan(array[j].substring(g, q), array[j + 1].substring(g, q))) {
String temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
// System.out.println(" array[" + j + "] change with array[" + (j + 1) + "]");
}
if(array[j].substring(g, q).equals(array[j+1].substring(g, q)))
{
g++;
q++;
if (isGreaterThan(array[j].substring(g, q), array[j + 1].substring(g, q)))
{
String temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
// System.out.println(" array[" + j + "] change with array[" + (j + 1) + "]");
}
}
}
}
}
//Метод для сравнения строк: 'а' больше чем 'b'
public static boolean isGreaterThan(String a, String b) {
return a.compareTo(b) > 0;
}
}