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

Исключить из строки группу символов

27.04.2020, 21:16. Показов 2826. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка : "fuigj2dfj11i854hjhu/*qwertyuiopasdfghjklzxcvbnmqw*/ert5678876565544yuioppppdfghjkll/*lzxcvbrtyufgh683jklzxcvbnmm*/m123455
1.Исключить из исходной строки группы символов, расположенные между символами «/ *», «* /», включая границы. Результат выведите в консоль.
4. Создать массив строк из исключенных групп символов (элементы массива не должны содержать границы «/ *» и «* /»). Результат вывести в консоль.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.04.2020, 21:16
Ответы с готовыми решениями:

Как исключить из определенной строки любой символ или группу символов?
Подскажите, как исключить из определенной строки любой символ или группу символов? Прочитал вот здесь...

Исключить из ленты группу символов
Дано ленту символов. Исключить из ленты группу символов, размещенные между скобками (). Сами скобки также исключить. Заранее дано, что...

Строки(исключить группу букв)
В заданной строке символов исключить все группы символов вида АВС. Помогите, буду очень благодарна)

6
Модератор
Эксперт Java
 Аватар для alecss131
2863 / 1369 / 409
Регистрация: 11.08.2017
Сообщений: 4,392
Записей в блоге: 2
27.04.2020, 23:41
Первый вариант легко загуглился регуляркой а 4 пришлось немного покодить
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
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
public class Test {
    public static void main(String[] args){
        new Test().run();
    }
    
    public void run() {
        //test string
        String test = "fuigj2dfj11i854hjhu/*qwertyuiopasdfghjklzxcvbnmqw*/ert5678876565544yuioppppdfghjkll/*lzxcvbrtyufgh683jklzxcvbnmm*/m123455";
        //1.
        System.out.println(test.replaceAll("\\/\\*[\\s\\S]*?\\*\\/",""));
        //4.
        String arr[] = test.split("\\*");
        List<String> list = new ArrayList<>();
        for (String s : arr) {
            if (!s.startsWith("/") && !s.endsWith("/")) list.add(s);
        }
        String out[] = list.toArray(new String[0]);
        System.out.println(Arrays.toString(out));
    }
}
Добавлено через 2 минуты
Хотя 4 будет корректно работать только если в исходной строке нету символов * где либо кроме /* и */
Лень продумывать полностью)))
1
0 / 0 / 0
Регистрация: 27.04.2020
Сообщений: 12
28.04.2020, 12:24  [ТС]
Спасибо, а есть вариант как сделать это без регулярного выражения?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
28.04.2020, 12:47
indexOf("/*"), indexOf("*/), substring
0
Модератор
Эксперт Java
 Аватар для alecss131
2863 / 1369 / 409
Регистрация: 11.08.2017
Сообщений: 4,392
Записей в блоге: 2
28.04.2020, 12:57
Лучший ответ Сообщение было отмечено razzizhatel как решение

Решение

razzizhatel, вот накидал на скорую руку
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
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
public class Test {
    public static void main(String[] args){
        new Test().run();
    }
    
    public void run() {
        String test = "fuigj2dfj11i854hjhu/*qwertyuiopasdfghjklzxcvbnmqw*/ert5678876565544yuioppppdfghjkll/*lzxcvbrtyufgh683jklzxcvbnmm*/m123455";
        String tmp = test;
        List<String> list = new ArrayList<>();
        int s = tmp.indexOf("/*");
        int e = tmp.indexOf("*/");
        StringBuilder sb = new StringBuilder("");
        while (s > -1 && e > -1) {
            list.add(tmp.substring(s+2, e));
            sb.append(tmp.substring(0, s));
            tmp = tmp.substring(e+2);
            s = tmp.indexOf("/*");
            e = tmp.indexOf("*/");
        }
        sb.append(tmp);
        String out[] = list.toArray(new String[0]);
        System.out.println(test);
        System.out.println(sb);
        System.out.println(Arrays.toString(out));
    }
}
Вывод
Code
1
2
3
fuigj2dfj11i854hjhu/*qwertyuiopasdfghjklzxcvbnmqw*/ert5678876565544yuioppppdfghjkll/*lzxcvbrtyufgh683jklzxcvbnmm*/m123455
fuigj2dfj11i854hjhuert5678876565544yuioppppdfghjkllm123455
[qwertyuiopasdfghjklzxcvbnmqw, lzxcvbrtyufgh683jklzxcvbnmm]
0
 Аватар для Aviz__
2753 / 2060 / 509
Регистрация: 17.02.2014
Сообщений: 9,487
28.04.2020, 15:46
Лучший ответ Сообщение было отмечено razzizhatel как решение

Решение

Цитата Сообщение от razzizhatel Посмотреть сообщение
без регулярного выражения
ога, с радостью)). можешь ставить любые теги.
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
import java.util.ArrayList;
import java.util.List;
 
public class Helper {
 
    public static void main(String[] args) {
        String test = "fuigj2dfj11i854hjhu/*qwertyuiopasdfghjklzxcvbnmqw*/ert5678876565544y" +
                "uioppppdfghjkll/*lzxcvbrtyufgh683jklzxcvbnmm*/m123455";
        System.out.println(getSpecificPartsStr(test, "/*", "*/"));
    }
 
    private static List<String> getSpecificPartsStr(String src, String openTag, String closeTag) {
        List<String> stringList = new ArrayList<>();
        int indexOpenTag = -1;
        int startSerchOpenTag = 0;
        int indexCloseTag = -1;
        int startSerchCloseTag = 0;
        while ((indexOpenTag = src.indexOf(openTag, startSerchOpenTag)) != -1 &&
                (indexCloseTag = src.indexOf(closeTag, startSerchCloseTag)) != -1) {
            if (indexOpenTag + 1 != indexCloseTag)
                stringList.add(src.substring(indexOpenTag + openTag.length(), indexCloseTag));
            startSerchOpenTag = indexOpenTag + 1;
            startSerchCloseTag = indexCloseTag + 1;
        }
        return stringList;
    }
}
0
0 / 0 / 0
Регистрация: 27.04.2020
Сообщений: 12
28.04.2020, 16:25  [ТС]
Всем огромное спасибо!!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.04.2020, 16:25
Помогаю со студенческими работами здесь

Во введенной символьной строке группу символов заменить на другую группу символов
Задача : Во введенной символьной строке группу символов НН заменить на группу символов Нижний Новгород. :)

Во введенной символьной строке группу символов заменить на другую группу символов
Sub zamena() Dim s, snew, c As String Dim n, i As Integer s = InputBox(&quot;введите строку&quot;) n = Len(s) snew = &quot;&quot; For i = 1 To n ...

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

Как из строки исключить несколько символов в конце?
Как из строки исключить несколько символов в конце?

Исключить из строки группы символов, расположенные между скобками []
Дана строка символов. Исключить из этой строки группы символов, расположенные между скобками . Сами скобки тоже должны быть исключены....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через 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-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru