Упражнения на Java: читает список пар слова и номера страницы и печатает слово и список соответствующих номеров страниц
Java Basic: упражнение 243 с решением
Напишите Java-программу, которая считывает список пар слова и номера страницы и печатает слово и список соответствующих номеров страниц.
Количество пар слова и номера страницы меньше или равно 1000. Слово никогда не появляется на странице более одного раза. Слова должны быть напечатаны в алфавитном порядке, а номера страниц должны быть напечатаны в порядке возрастания.
Входные данные :
Введите пары слов и номера страницы:
яблоко 5
банан 6
Слово и номер страницы в алфавитном порядке:
яблоко
5
банан
6
Пример решения:
Java-код:
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
static class Dic implements Comparable<Dic>{
String moji;
int page;
Dic(String moji, int page){
this.moji=moji;
this.page=page;
}
public int compareTo(Dic d) {
if(this.moji.equals(d.moji)) {
return this.page-d.page;
}
else {
return this.moji.compareTo(d.moji);
}
}
}
public static void main(String[] args) {
try(Scanner sc = new Scanner(System.in)){
PriorityQueue<Dic> pq=new PriorityQueue<>();
System.out.println("Input pairs of a word and a page number:");
while(sc.hasNextLine()) {
String str=sc.nextLine();
String[] token=str.split(" ");
String s=token[0];
int n=Integer.parseInt(token[1]);
pq.add(new Dic(s, n));
}
String pre="";
System.out.println("\nWord and page number in alphabetical order:");
while(!pq.isEmpty()) {
Dic dic=pq.poll();
if(dic.moji.equals(pre)) {
System.out.print(" "+dic.page);
}
else if(pre.equals("")) {
System.out.println(dic.moji);
System.out.print(dic.page);
}
else {
System.out.println();
System.out.println(dic.moji);
System.out.print(dic.page);
}
pre=dic.moji;
}
System.out.println();
}
}
}
Пример вывода:
Введите пары слов и номера страницы: яблоко 5 банан 6 Слово и номер страницы в алфавитном порядке: яблоко 5 банан 6
Блок - схема:
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите Java-программу, которая суммирует столбцы и строки данной таблицы, как показано на указанном рисунке.
Далее: Напишите программу на Java, которая принимает строку от пользователя и проверяет, является ли строка правильной или нет.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования