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

Работа со строками

16.05.2018, 17:42. Показов 711. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, разобраться с заданием:

Задан текст, слова в котором разделены пробелами и знаками препинания. Разработать программу, которая изымает из этого текста все слова с удвоением букв и записывает их в отдельную строку, разделяя пробелами. Печатает отдельно изъятые слова и текст, оставшийся после удаления слов.

Вот что, пока, получилось:
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
package task4;
import java.util.Scanner;
 
public class Task4
{
    static void IsTwice (StringBuilder text, StringBuilder words)
    {
        int index = 0, indexBGN, indexEND;
        boolean flag = false;
        
        while (index < text.length())
        {
            if (text.charAt (index) == (text.charAt (index ++)))
            {
                flag = true;
                
                indexBGN = index;
                while (Character.isLetter (text.charAt(indexBGN--)))
                    indexBGN--;
                
                indexEND = index;
                while (Character.isLetter (text.charAt(indexEND++)))
                    indexEND++;
                
                for (int n = indexBGN; n <= indexEND; n++)
                    words.append (text.charAt (n));
                words.append (" ");
                
                text.delete (indexBGN, indexEND++);
            }
            
            if (flag)
                index = indexEND++;
            else
                index++;
        }
        
            
    }
    
    public static void main (String[] args)
    {
        Scanner in = new Scanner (System.in);
        
        StringBuilder text = new StringBuilder();
        StringBuilder words = new StringBuilder();
        
        System.out.println ("Input text:");
        text.append (in.nextLine());
        
        IsTwice (text, words);
        
        System.out.println ("The remained text:");
        System.out.println(text);
        
        System.out.println ("The words with doubled letters:");
        System.out.println(words);
    }
    
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2018, 17:42
Ответы с готовыми решениями:

Работа со строками
В каждом слове текста k-ю букву заменить указанным символом. Если k больше длины слова, корректировку не выполнять. package...

Работа со строками
Дана строка символов. Найти самое длинное слово, начинающееся с буквы ''я'', и вывести его в обратном порядке.

Работа со строками
Помогите, пожалуйста, с задачами! На Java никогда не программировала, преподаватель дал задание для самостоятельного изучения. Разобраться...

8
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
16.05.2018, 17:54
Gustinno, и в чем вопрос?
0
0 / 0 / 0
Регистрация: 16.05.2018
Сообщений: 4
16.05.2018, 17:59  [ТС]
После ввода текста выводит Exception: String index out of range.
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
16.05.2018, 18:00
Цитата Сообщение от Gustinno Посмотреть сообщение
выводит Exception
а дебагер, что говорит?
0
0 / 0 / 0
Регистрация: 16.05.2018
Сообщений: 4
16.05.2018, 18:06  [ТС]
До него не дошёл, из-за того что не уверен правильный ли вообще алгоритм.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
16.05.2018, 18:13
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
public class Cyber {
 
    public static void main(String[] args) {
        String s = "aSFDASDF,fsdf, sdfasf ,sdfa sdf,dsfa,sadf ;;sadf sadf sdf;; fdfdf dddff ff";
 
        ArrayList<String> list = new ArrayList<>(Arrays.asList(s.split("\\W+")));
 
        for (String line : list) {
            if (findTwice(line)) {
                System.out.print(line + " ");
                s = s.replace(line, "");
            }
        }
        System.out.println("\n" + s);
    }
 
    private static boolean findTwice(String s) {
        if (s.length() < 2) return false;
        for (int i = 0; i < s.length() - 1; i++) {
            if (s.charAt(i) == s.charAt(i + 1)) return true;
        }
        return false;
    }
}
1
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
16.05.2018, 18:14
Gustinno, так он все и покажет)). 5 минут ознакомления с ним и вся жизнь без унижений!
0
0 / 0 / 0
Регистрация: 16.05.2018
Сообщений: 4
16.05.2018, 18:31  [ТС]
Добавлено через 2 минуты
Цитата Сообщение от iSmokeJC Посмотреть сообщение
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
public class Cyber {
 
    public static void main(String[] args) {
        String s = "aSFDASDF,fsdf, sdfasf ,sdfa sdf,dsfa,sadf ;;sadf sadf sdf;; fdfdf dddff ff";
 
        ArrayList<String> list = new ArrayList<>(Arrays.asList(s.split("\\W+")));
 
        for (String line : list) {
            if (findTwice(line)) {
                System.out.print(line + " ");
                s = s.replace(line, "");
            }
        }
        System.out.println("\n" + s);
    }
 
    private static boolean findTwice(String s) {
        if (s.length() < 2) return false;
        for (int i = 0; i < s.length() - 1; i++) {
            if (s.charAt(i) == s.charAt(i + 1)) return true;
        }
        return false;
    }
}
Спасибо большое!

Добавлено через 53 секунды
Цитата Сообщение от Aviz__ Посмотреть сообщение
Gustinno, так он все и покажет)). 5 минут ознакомления с ним и вся жизнь без унижений!
Соглашусь
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
16.05.2018, 19:07
вот, почти медвежатина))
Java
1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) {
        String s = "sdfassf ,sdfa sdf,dsfa,sadf ;;sadf sadf sdf;; fdfdf dddff ff";
        String [] list = s.split("\\W+");
 
        for (String line : list) {
            if (line.matches("\\b.*([A-Za-z])\\1.*\\b"))
                System.out.print(line + " ");
 
        }
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.05.2018, 19:07
Помогаю со студенческими работами здесь

Работа со строками
Ввести из консоли k строк. Упорядочить и вывести эти строки в порядке убывания их длины. Вот что у меня получилось: package z7; ...

Работа со строками
Доброго времени суток... Только начал изучать Джаву и наткнулся на проблему. Задание: первая часть сделать вычисления по формуле, здесь...

Работа со строками
Здравствуйте, мне нужно решить следующую задачу: Во все вопросительных предложениях текста преобразовать каждое слово, удалив из...

Работа со строками
Помогите пжл. Только начинаю разбираться. В чем ошибка????? Разработать программу, которая вводит букву английского алфавита и...

Работа со строками
Нужно написать программу, которая вводит строку и находит все слова указанной длины n (n вводится). Если можно, то покажите хотя бы...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru