R
R
Rauf2020-11-14 12:14:10
Java
Rauf, 2020-11-14 12:14:10

Why does the program not ask for text, I enter sentences into the console and nothing happens?

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);
        }
     
    }

please help, the program does not ask for text, I enter sentences into the console and nothing happens

Answer the question

In order to leave comments, you need to log in

1 answer(s)
R
Ruslan., 2020-11-14
@rauf1

Try instead of next() to use nextLine() and then analyze the presence of done in the read line.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question