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

Строки в массив

21.09.2013, 00:18. Показов 3018. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Стоит задача сделать консольную программу, которая бы фильтровала предложение в котором содержится введенное слово. То есть вводим слово, потом предложение, если в предложении есть слово, то его не выводим, если нету этого слова, то выводим. Программу написал, но нужно сделать чтобы была возможность введения нескольких слов и предложений одновременно. Была мысль запихивать слова и предложения в массив и оттуда проверять, если нету того слова, то предложение запихиваем в другой массив который в конце программы будет выводить их. Но т.к. я новичек в java и в программировании в общем, то я не знаю как введенную строку из консоли запихать в массив, и возможно ли это? Или есть варианты по легче? И покритикуйте пожалуйста код.
Программа сейчас выглядит так:
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
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
        System.out.println("Введите слово которое нужно игнорировать");
 
        String ignoring = br.readLine();
 
        System.out.println("Введите предложение");
        String str = br.readLine();
 
        String[] result = str.split("\\s");
        boolean prok = false;
 
        for (int i=0; i<result.length; i++)  {
 
            if (result[i].equals(ignoring)) {
                prok = true; 
                break;
            } else {
                prok = false;   
            }
        }
        if (prok == false) {
             System.out.println(str);
        } else {
             System.out.println("Fig");
        }
 
       }
    }

И еще, в коде есть кусок программы
Java
1
String[] result = str.split("\\s");
, но что он делает? Взял этот кусок откуда то, а что он именно делает так и не разобрался. Опишите подробно пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2013, 00:18
Ответы с готовыми решениями:

Дан двумерный массив, содержащий 3 строки и 4 столбца. Упорядочить массив по убыванию элементов 3-ей строки
у меня какая-то чушь выходит всё время. кто-нибудь может помочь, пожалуйста ?

Ввести n строк с консоли. Создать массив строк. Упорядочить строки и вывести эти строки в порядке убывания длины.
Помогите решить и объяснить, где что. Сделать надо в Eclipse. Ввести n строк с консоли. Создать массив строк. Упорядочить строки...

Преобразование строки в массив.
Имеется строка виду: 3580.08367 3606.08367 3591.08367 3598.08367 3601.08367 Нужно ее загнать в масив, что б он виглядел вот так: ...

3
 Аватар для -LM-
57 / 57 / 12
Регистрация: 11.02.2013
Сообщений: 132
21.09.2013, 13:54
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
public static void main(String[] args) {
 
        Map<String, String> map = new HashMap<>();
        boolean flag = true;
        try (BufferedReader br = new BufferedReader(new InputStreamReader(
                System.in));) {
            System.out.println("Для завершения програми введите exit");
            while (flag) {
                System.out.println("Введите слово которое нужно игнорировать");
                String ignoring = br.readLine();
                if (ignoring.equals("exit")) {
                    break;
                }
                System.out.println("Введите предложение");
                String str = br.readLine();
                if (str.equals("exit")) {
                    break;
                }
                map.put(ignoring, str);
 
            }
            Set<Map.Entry<String, String>> set = map.entrySet();
            for (Map.Entry<String, String> mapa : set) {
                if (!(mapa.getValue().contains(mapa.getKey()))) {
                    System.out.println(mapa.getValue());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
Добавлено через 8 минут
Цитата Сообщение от Vlad161 Посмотреть сообщение

И еще, в коде есть кусок программы
Java
1
String[] result = str.split("\\s");
, но что он делает? Взял этот кусок откуда то, а что он именно делает так и не разобрался. Опишите подробно пожалуйста.
разбивает предложение которое Вы ввели на части и помещает их в массив, в качестве разделителя указывается (RegExp) по какому критерию разбивать("\\s") - означает "пробел", тоесть Строка "Hello World " будет разбита на массив строк
result[0] = "Hello";
result[1] = "World";
result[2] = "";
1
0 / 0 / 0
Регистрация: 02.01.2011
Сообщений: 49
21.09.2013, 22:30  [ТС]
Цитата Сообщение от -LM- Посмотреть сообщение
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
public static void main(String[] args) {
 
        Map<String, String> map = new HashMap<>();
        boolean flag = true;
        try (BufferedReader br = new BufferedReader(new InputStreamReader(
                System.in));) {
            System.out.println("Для завершения програми введите exit");
            while (flag) {
                System.out.println("Введите слово которое нужно игнорировать");
                String ignoring = br.readLine();
                if (ignoring.equals("exit")) {
                    break;
                }
                System.out.println("Введите предложение");
                String str = br.readLine();
                if (str.equals("exit")) {
                    break;
                }
                map.put(ignoring, str);
 
            }
            Set<Map.Entry<String, String>> set = map.entrySet();
            for (Map.Entry<String, String> mapa : set) {
                if (!(mapa.getValue().contains(mapa.getKey()))) {
                    System.out.println(mapa.getValue());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
Эм... это пока слишком сложно для меня, большую часть кода не понимаю вообще, что означает < > вообще хз) Можете ответить на мой вопрос, как на примере моей программы запихать стринг в массив или объяснить другой подход к этому месту
Программу делаю для себя, и то что вы мне ее написали это конечно хорошо спасибо, но опыта и понимания у меня не прибавится ни чуть, уж простите)
0
 Аватар для -LM-
57 / 57 / 12
Регистрация: 11.02.2013
Сообщений: 132
22.09.2013, 03:10
вариант попроще
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
try (BufferedReader br = new BufferedReader(new InputStreamReader(
                System.in))) {
            String saveIgnoring = ""; //строка куда будем собирать слова для игнорирования, 
            //которые потом преобразуем в массив строк(а именно arraysOfIgnoring)
            String saveStr = ""; // строка куда будем собирать предложения, 
            //которые потом преобразуем в массив строк(а именно arraysOfStr)
            String[] arraysOfIgnoring; // обьявляем масив в который потом занесем массив слов
            String[] arraysOfStr; // обьявляем масив в который потом занесем массив предложений
            while (true) {
                System.out.println("Введите слово которое нужно игнорировать ");
                String ignoring = br.readLine();
                if (ignoring.equals("exit")) {
                    arraysOfIgnoring = saveIgnoring.split("\\s"); // получаем массив слов(для игнорирования) 
                    //в качестве разделителя срок используем пробел("\\s")
                    arraysOfStr = saveStr.split("---"); // получаем массив предложение
                    //в качестве разделителя используем ("---")(можно задать что угодно, но если в предложение будет
                    //содержать --- то соответственно масив буде построен некорректно ;) )
                    break; 
                } else {
                    saveIgnoring += " " + ignoring; //наполняем строку словами + разделитель по которому будем резать строку на массив (" ")
                }
                System.out.println("Введите предложение"); 
                String str = br.readLine();
                saveStr += "---" + str; // наполняем строку предложениями + разделитель по которому будем резать строку на массив("---")
            }
            for (int i = 0; i < arraysOfIgnoring.length; i++) {
                if (!(arraysOfStr[i].contains(arraysOfIgnoring[i]))) { //ну и делаем проверку, если в предложении 
                    //нету слова для игнорирования, то выводим его
                    System.out.println(arraysOfStr[i]);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
Эм... это пока слишком сложно для меня, большую часть кода не понимаю вообще, что означает < > вообще хз)
гуглите в сторону Generics'ov и Collections а лучше читайте книги
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.09.2013, 03:10
Помогаю со студенческими работами здесь

Разбиение строки на массив
Нужно разбить строку на массив после знака +. Пишу следующий код. String a = prim.split(&quot;+&quot;); На что получаю следующую...

Разбить массив в отдельные строки
Создал 5 отдельных массива и теперь не могу разбить, они строятся в одну строку а мне нужно что бы они отдельно по строкам стояли ...

Двумерный массив. Упорядочнить строки по возрастаню
Надо составить программу которая формирует двумерный массив m*n и упорядочнить строки по возрастаню

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

Преобразование строки из чисел в массив целых
доброе время суток! возможно ли преобразовать строку в которой записаны последовательно числа без пробелов (например 123) в массив целых...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru