rauf1
@rauf1
Кратко не получится

Почему программа не запрашивает текст, ввожу в консоль предложения и ничего не происходит?

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.*;
     
    /**
     Написать консольную программу, которая бы сортировала текст поданный ей на стандартный вход по алфавиту.

Варианты усложнения:

1.Программа должна игнорировать регистр при сортировке
2.Программа должна сортировать не по алфавиту, а по количеству символов в строке
     */
public class NewClass8 {
     
public static void main(String... args) {
    List<String> temp = new ArrayList<String>(); //используем коллекцию, чтобы добавлять элементы динамически
    Scanner in = new Scanner(System.in);
    
    while (true) {
        String input = in.next();
        if (input.equals("done")) { // ввод закончим на слове "done"
            break;
        }
        temp.add(input);
    }
    
    String[] strings = new String[temp.size()]; 
    temp.toArray(strings); // делаем массив из коллекции, если нужен массив введенных слов
    Collections.sort(Arrays.asList(strings), new MyComparator());
    
    for (String string : strings) {
        System.out.println(string);
    }
  }
}
     
    class MyComparator implements Comparator<String> {
     
        @Override
        public int compare(String o1, String o2) {
            Integer i1 = o1.length();
            Integer i2 = o2.length();
            return i1.compareTo(i2);
        }
     
    }

помогите пожалуйста, программа не запрашивает текст, ввожу в консоль предложения и ничего не происходит
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
LaRN
@LaRN
Senior Developer
Попробуйте вместо next() использовать nextLine() и затем анализируйте наличие done в считанной строке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы