Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для The_Fat_Man
10 / 10 / 3
Регистрация: 04.03.2014
Сообщений: 140

Использование регулярных выражений для строк

20.04.2014, 01:42. Показов 1101. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане! У меня есть проблема: как мне при помощи регулярных выражений запретить пользователю ввод с консоли некоторых символов ("^[ _]*[a-z0-9][a-z0-9 _]*$") или, если пользователь ввел строку с запрещенными символами, кинуть исключение.
P.S. Заранее спасибо.

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Tester {
    public static void main(String[] args) {
        String text = "wolf arthouse unity gnome father yep duty volume weather rain music police code java help tools build ninja helicopter";
 
        //Scanner in = new Scanner(System.in);
        //text = in.nextLine();
 
        /// ****
        System.out.println("Cool check:");
        System.out.println(checkWithRegExp(text));
        System.out.println("\nDumb check:");
        System.out.println(dumbCheck(text));
        //// ****
 
        System.out.print("Введите число, чтобы я смог кинуть исключение: ");
        Scanner sc = new Scanner(System.in);
        double var = 0;
        try {
            var = sc.nextDouble();
        } catch (ClassCastException e) {
            System.out.println("НЕПРАВИЛЬНОНЕ ПРИВЕДЕНИЕ ТИПОВ!");
        }
        System.out.println(var/3);
 
        String[] words = text.split("\\s");
 
        int wordCount = 0;
        int wordsSize = words.length;
        for (int i = 0; i < wordsSize; ++i)
            if (words[i] != null && !"".equals(words[i]))
                ++wordCount;
 
        System.out.println("Word count = " + wordCount + "\n");
 
        String []resultMAX;
        resultMAX = new String[wordCount];
 
        for(int k = 0; k < wordCount; k++) {
            String resultString = words[k];
            char endChar = words[k].charAt(words[k].length() - 1);
 
            for(int i = 0; i < wordCount;) {
                if ((i + 1) > wordCount - 1)
                    break;
 
                int j = i +1;
                while(j < wordCount) {
                    char nextStartChar = words[j].charAt(0);
                    if (endChar == nextStartChar) {
                        if(resultString.contains(words[j]));
                        else {
                            resultString = resultString + " " + words[j];
                            endChar = words[j].charAt(words[j].length() - 1);
                            i = j;
                            break;
                        }
                    }
                    else {
                        j++;
                        i = j;
                    }
                }
            }
            resultMAX[k] = resultString;
        }
 
        System.out.println("РАЗЛИЧНЫЕ ВАРИАЦИИ:");
 
        for(int i = 0; i < wordCount; i++)
            System.out.println(resultMAX[i]);
 
        int []countArr;
        countArr = new int [wordCount];
 
        for(int i = 0; i < wordCount; i++) {
            String[] wordsInFinal = resultMAX[i].split("\\s");
 
            int wordsCountFinal = 0;
            int wordsSizeFinal = wordsInFinal.length;
            for (int j = 0; j < wordsSizeFinal; ++j)
                if (wordsInFinal[j] != null && !"".equals(wordsInFinal[j]))
                    ++wordsCountFinal;
 
            countArr[i] = wordsCountFinal;
            System.out.println(countArr[i]);
        }
 
        int maxCombo = countArr[0];
        int numMax = 0;
        for(int i = 0; i < wordCount; i++) {
            if(maxCombo <= countArr[i]) {
                maxCombo = countArr[i];
                numMax = i;
            }
        }
 
        System.out.print("Максимальная комбинация: ");
        System.out.println(maxCombo);
        System.out.println(resultMAX[numMax]);
    }
 
    /////////////// ****** ////////////////////////
 
    public static boolean checkWithRegExp(String myText){
        Pattern p = Pattern.compile("^[ _]*[a-z0-9][a-z0-9 _]*$");
        Matcher m = p.matcher(myText);
        return m.matches();
    }
 
    public static boolean dumbCheck(String myText){
        char[] symbols = myText.toCharArray();
 
        String validationString = "abcdefghijklmnopqrstuvwxyz0123456789_ ";
 
        for(char c : symbols){
            if(validationString.indexOf(c)==-1) return false;
        }
 
        return true;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.04.2014, 01:42
Ответы с готовыми решениями:

Использование регулярных выражений
Имеется код считывающий из файла содержимое.import java.io.*; public class Program { public static void main(String args) {...

Написать программу обработки строк с исп. регулярных выражений
Методика выполнения работы Изучите введение и по документации к Java 1.6 ознакомьтесь с составом класса StringTokenizer. ...

Начинающему_использование шабонов регулярных выражений
Здравствуйте. Помогите, пожалуйста, разрешить такую ситуацию. Задание состоим вот в чем. У меня есть текстовый документ с отображением...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.04.2014, 01:42
Помогаю со студенческими работами здесь

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

Обработка текста с использованием регулярных выражений
Какой вид должно иметь выражение для поиска последовательности длинной 3+ символа, содержащую буквенные символы? При нахождении таковой...

Поиск скобок в строке с использованием регулярных выражений
Есть строка, в которой нужно знать есть ли там скобки &quot;{&quot; &quot;}&quot;, но скобки в регулярных выражениях есть спец символ. Спец символ отменяется...

Считывание в объект класса путем регулярных выражений
Доброго вечера. Может кто-нибудь помочь набросать регулярные выражения, чтобы считать из файла в объект класса? Есть коллекция из...

Задача по обработке файла с использованием регулярных выражений
Пытаюсь решить задачу: Задан log-file с описанием четырёхдневных курсов в следующем виде: 09:20 Введение 11:00 Упражнения ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru