Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/89: Рейтинг темы: голосов - 89, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 5

Не могу выполнить задание

15.09.2016, 07:37. Показов 18001. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вам дан список ролей и сценарий пьесы в виде массива строчек.

Каждая строчка сценария пьесы дана в следующем виде:
Роль: текст

Текст может содержать любые символы.

Напишите метод, который будет группировать строчки по ролям, пронумеровывать их и возвращать результат в виде готового текста (см. пример). Каждая группа распечатывается в следующем виде:

Роль:
i) текст
j) текст2
...
==перевод строки==

i и j -- номера строк в сценарии. Индексация строчек начинается с единицы, выводить группы следует в соответствии с порядком ролей. Переводы строк между группами обязательны, переводы строк в конце текста не учитываются.

Заметим, что вам предстоит обработка огромной пьесы в 50 000 строк для 10 ролей – соответственно, неправильная сборка результирующей строчки может выйти за ограничение по времени.

Обратите внимание еще на несколько нюансов:

имя персонажа может встречаться в строке более одного раза, в том числе с двоеточием;
название одной роли может быть префиксом названия другой роли;
роль, у которой нет реплик, тоже должна присутствовать в выходном файле;
в качестве перевода строки надо использовать символ '\n' (перевод строки в стиле UNIX);
будьте внимательны, не добавляйте лишних пробелов в конце строк.
Sample Input:
roles:
Городничий
Аммос Федорович
Артемий Филиппович
Лука Лукич
textLines:
Городничий: Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.
Аммос Федорович: Как ревизор?
Артемий Филиппович: Как ревизор?
Городничий: Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.
Аммос Федорович: Вот те на!
Артемий Филиппович: Вот не было заботы, так подай!
Лука Лукич: Господи боже! еще и с секретным предписаньем!
Sample Output:
Городничий:
1) Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.
4) Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.

Аммос Федорович:
2) Как ревизор?
5) Вот те на!

Артемий Филиппович:
3) Как ревизор?
6) Вот не было заботы, так подай!

Лука Лукич:
7) Господи боже! еще и с секретным предписаньем!


Вот мой код

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public class Piece {
private static String[] roles = {"Городничий", "Аммос Федорович", "Артемий Филиппович", "Лука Лукич"};
private static String[] textLines = {
            "Городничий: Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.",
            "Аммос Федорович: Как ревизор?",
            "Артемий Филиппович: Как ревизор?",
            "Городничий: Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.",
            "Аммос Федорович: Вот те на!",
            "Артемий Филиппович: Вот не было заботы, так подай!",
            "Лука Лукич: Господи боже! еще и с секретным предписаньем!"
    };
private static String printTextPerRole(String[] roles, String[] textLines) {
      StringBuilder[] textByRoles = new StringBuilder[roles.length];
        for (int i = 0; i < roles.length; i++) {
            textByRoles[i] = new StringBuilder(roles[i] + ":");
        }
 
        for (int i = 0; i < textLines.length; i++) {
            String[] splitLine = textLines[i].split(": ", 2);
            String role = splitLine[0];
            String text = splitLine[1];
 
            int j = 0;
            while (!roles[j].equals(role)) {
                j++;
            }
            textByRoles[j].append("\n" + (i + 1) + ") " + text);
        }
 
        String result = "";
        for (StringBuilder line : textByRoles) {
            result += line + "\n\n";
        }
        return result;
    }
 
    public static void main(String[] args) {
        System.out.println(printTextPerRole(roles, textLines));
    }
}
Вылезают вот такие ошибки :

Compilation error
Main.java:21: error: cannot find symbol
System.out.println(task5.printTextPerRol e(
^
symbol: method printTextPerRole(String[],String[])
location: variable task5 of type Main
Main.java:28: error: Illegal static declaration in inner class Main.Piece
private static String[] roles = {"Городничий", "Аммос Федорович", "Артемий Филиппович", "Лука Лукич"};
^
modifier 'static' is only allowed in constant variable declarations
Main.java:29: error: Illegal static declaration in inner class Main.Piece
private static String[] textLines = {
^
modifier 'static' is only allowed in constant variable declarations
Main.java:38: error: Illegal static declaration in inner class Main.Piece
private static String printTextPerRole(String[] roles, String[] textLines) {
^
modifier 'static' is only allowed in constant variable declarations
Main.java:63: error: Illegal static declaration in inner class Main.Piece
public static void main(String[] args) {
^
modifier 'static' is only allowed in constant variable declarations



Помогите выполнить задание, заранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.09.2016, 07:37
Ответы с готовыми решениями:

Не могу выполнить задание №2
Мне нужно выполнить данное задание в маткаде, но я не знаю как это сделать, помогите! Вычислить сумму ряда с заданной точностью ...

Не могу выполнить задание №1
Мне нужно выполнить данное задание в маткаде, но я не знаю как это сделать, помогите! Вычислить \sum \frac{(-1^i^+^1)}{(4^i)+(5^i^+^2)} ...

Не могу выполнить задание №5
Мне нужно выполнить данное задание в маткаде, но я не знаю как это сделать, помогите! Для х= 1.05 вычислить \sum \sum \frac{x+i}{j} . Над...

3
31 / 31 / 12
Регистрация: 25.07.2015
Сообщений: 120
15.09.2016, 11:22
gshrg12, ты точно весь код привел? Я думаю, что нет. Судя по сообщениям, у тебя класс Piece является внутренним. Если это так, то либо читай про внутренние (inner) и вложенные (nested) классы (тогда поймешь почему на static'и жалуется), либо выноси класс Piece в отдельный файл.
На будущее, приводи полный код. У тебя компилятор указывает строки ошибок. Смотришь на твои строки, а там со всем другое.
0
 Аватар для mocivan
95 / 95 / 50
Регистрация: 07.07.2015
Сообщений: 208
16.09.2016, 14:29
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package replicator;
 
import java.io.*;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Scanner;
 
public class Replicator {
    public static void main(String[] args) {
        Map<String, Map<Integer, String>> replicatedText = new LinkedHashMap<>();
        System.out.println("Enter the file location (e.g. D:\\texts\\textOne.txt) :");
        File file = null;
        try (Scanner scanner = new Scanner(System.in)) {
            if (scanner.hasNextLine()) {
                file = new File(scanner.nextLine().trim());
            }
        }
        //choose right encoding!
        replicateFile(replicatedText, file, "windows-1251");
        showResults(replicatedText);
    }
 
    private static void replicateFile(Map<String, Map<Integer, String>> replicatedText, File file, String encoding) {
        if (file.exists()) {
            try (Scanner scanner = new Scanner(new FileInputStream(file), encoding)) {
                boolean isRole = true;
                String role;
                String nextLine;
                int lineNumber = 0;
                if (scanner.hasNextLine() && scanner.nextLine().equalsIgnoreCase("roles:")) {
                    while (isRole) {
                        if (scanner.hasNextLine()) {
                            role = scanner.nextLine();
                            if (!role.equalsIgnoreCase("textLines:")) {
                                replicatedText.put(role, new LinkedHashMap<>());
                            } else {
                                isRole = false;
                            }
                        }
                    }
                }
                while (scanner.hasNextLine()) {
                    nextLine = scanner.nextLine();
                    lineNumber++;
                    for (Map.Entry<String, Map<Integer, String>> entry : replicatedText.entrySet()) {
                        if (nextLine.startsWith(entry.getKey())) {
                            entry.getValue().put(lineNumber, nextLine.substring(entry.getKey().length() + 1).trim());
                        }
                    }
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
    }
 
    private static void showResults(Map<String, Map<Integer, String>> replicatedText) {
        for (Map.Entry<String, Map<Integer, String>> entry : replicatedText.entrySet()) {
            System.out.println(entry.getKey() + ":");
            for (Map.Entry<Integer, String> values : entry.getValue().entrySet()) {
                System.out.println(values.getKey() + ") " + values.getValue());
            }
            System.out.println();
        }
    }
}
Миниатюры
Не могу выполнить задание   Не могу выполнить задание  
0
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
16.09.2016, 16:23
Добавлю
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Piece {
    
    public static String[] roles = {"Городничий", "Аммос Федорович", "Артемий Филиппович", "Лука Лукич"};
    public static String[] textLines = {
            "Городничий: Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.",
            "Аммос Федорович: Как ревизор?",
            "Артемий Филиппович: Как ревизор?",
            "Городничий: Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.",
            "Аммос Федорович: Вот те на!",
            "Артемий Филиппович: Вот не было заботы, так подай!",
            "Лука Лукич: Господи боже! еще и с секретным предписаньем!"
    };
 
    public static void main(String[] args) {
        // TODO code application logic here
        for (String role : roles){
            System.out.println("\n" + role + ":");
            for (int i = 0; i < textLines.length; i++)
                if (textLines[i].matches(role + ".*")) System.out.println((i + 1) + ")" + textLines[i].replaceFirst(".*?:\\s+", ""));               
        }      
    }
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2016, 16:23
Помогаю со студенческими работами здесь

Не могу выполнить задание
очень нужна помощь с заданием.... Не могу сделать... Ввести с клавиатуры числа x, E . Последовательность a(1),a(2)....a(n)...

Не могу выполнить задание
Ребята, нужна помощь, не могу выполнить эти задания, буду рад любой помощи или подсказке :с

Не могу выполнить задание №4
Мне нужно выполнить данное задание в маткаде, но я не знаю как это сделать, помогите! В векторе V, состоящем из n элементов, найти сумму...

Не могу выполнить задание №3
Мне нужно выполнить данное задание в маткаде, но я не знаю как это сделать, помогите! Дана матрица M размером m n´ . Вывести на экран...

Не могу выполнить задание на сортировку
В общем, само задание такое: Упорядочить по возрастанию отдельно элеметы, стоящие на четных местах и элементы, стоящие на нечетных местах....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru