Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
MilkyWay888
3 / 3 / 2
Регистрация: 03.11.2016
Сообщений: 138
Завершенные тесты: 1
#1

Как осуществить поиск по 2-м аргументам и более методом startsWith?

25.01.2017, 18:23. Просмотров 210. Ответов 4
Метки нет (Все метки)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static private String printTextPerRole(String[] roles, String[] textLines) {
    StringBuilder output = new StringBuilder("");
    for (String role : roles) {
        output.append(role + ":\n");
        for (int i = 0; i < textLines.length; i++) {
            if (textLines[i].startsWith(role & ": ")) {
                output.append(i + 1 + ") ");
                output.append(textLines[i].substring(role.length() + 2));
                output.append("\n");                   
            }
 
        }
        output.append("\n");            
    }
    return output.toString();
}
Как можно изменить строку для поиска нужных символов if (textLines[i].startsWith(role)) Так как в строке role(в массиве лежат {Городничий, Аммос Федорович}) обозначены строки без : , далее я добавляю к ним ":\n". Но так как имеются во втором параметре строки textLines - находяться те же самые слова, но уже с двойными :: или дефисом - то не получается индентифецировать нужный параметр. Как быть с этим? Т.е. как сделать поиск более универсальным? (Надеюсь я правильно выразил свою мысль)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2017, 18:23
Ответы с готовыми решениями:

Как осуществить в дельфи осуществить поиск по таблице из другой формы?
Очень выручите, плизз

Поиск символа в строке. Как осуществить поиск в обратном направлении
Всем доброго времени суток. Вопрос такой: как осуществить поиск в обратном...

Реализовать поиск двух и более значений методом следящего интерполяционного поиска
Ребят, помогите реализовать поиск двух и более значений методом следящего...

Как осуществить Response.Redirect методом POST
Нужно сделать Redirect методом POST Вот нашел один пример...

Как осуществить поиск в DataSet ?
Надо найти определенную запись в DataSet. Или как создать новый DataSet...

4
Gr1f0nn
242 / 162 / 133
Регистрация: 30.09.2012
Сообщений: 690
25.01.2017, 22:32 #2
Вам обязательно именно startswith использовать?
Если нет, то вполне подойдут регулярные выражения и метод match
https://docs.oracle.com/javase/7/doc...a.lang.String)
0
xoraxax
1257 / 1212 / 358
Регистрация: 05.07.2013
Сообщений: 5,889
Завершенные тесты: 1
26.01.2017, 19:58 #3
Словами опиши что именно ты пытаешься сделать.
0
MilkyWay888
3 / 3 / 2
Регистрация: 03.11.2016
Сообщений: 138
Завершенные тесты: 1
27.01.2017, 15:13  [ТС] #4
Напишите метод, который будет группировать строчки по ролям, пронумеровывать их и возвращать результат в виде готового текста (см. пример). Каждая группа распечатывается в следующем виде:
Sample Input:
roles:
Городничий
Аммос Федорович
Артемий Филиппович
Лука Лукич
textLines:
Городничий: Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.
Аммос Федорович: Как ревизор?
Артемий Филиппович: Как ревизор?
Городничий: Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.
Аммос Федорович: Вот те на!
Артемий Филиппович: Вот не было заботы, так подай!
Лука Лукич: Господи боже! еще и с секретным предписаньем!
Sample Output:
Городничий:
1) Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.
4) Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.

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

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

Лука Лукич:
7) Господи боже! еще и с секретным предписаньем!
0
xoraxax
1257 / 1212 / 358
Регистрация: 05.07.2013
Сообщений: 5,889
Завершенные тесты: 1
27.01.2017, 22:30 #5
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private static final String[] lines = {
            "Городничий: Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.",
            "Аммос Федорович: Как ревизор?",
            "Артемий Филиппович: Как ревизор?",
            "Городничий: Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.",
            "Аммос Федорович: Вот те на!",
            "Артемий Филиппович: Вот не было заботы, так подай!"
    };
 
    public static void main (String... args) {
        Map<String, List<String>> collect = Arrays.stream(lines).map(App::parse)
                .collect(Collectors.groupingBy(Pair::getLeft,
                        Collectors.mapping(Pair::getRight, Collectors.toList())));
        System.out.println(collect);
 
    }
 
    private static Pair<String, String> parse(String line) {
        int index = line.indexOf(':');
        return Pair.of(line.substring(0,index).trim(), line.substring(index+1).trim());
    }
1
27.01.2017, 22:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2017, 22:30

Как осуществить поиск по темам
Как осуществить поиск тем

Как осуществить поиск в DataGrid?
Здравствуйте! Мне очень понадобилось реализовать поиск в базе данных. База...

Как осуществить поиск в документах
Когда то у меня стоял Windows XP и там при поиске (стандартном) была такая...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru