2 / 2 / 1
Регистрация: 23.10.2012
Сообщений: 38
1

Проверка строки на наличие определенных символов

21.11.2012, 19:45. Показов 238116. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть строка символов, мне нужно проверить есть ли там цифры или другие ненужные символы.
Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2012, 19:45
Ответы с готовыми решениями:

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

Разбиение строки, и проверка каждой из подстрок на содержание определенных символов
Добрый день, друзья, надеюсь на вашу помощь. string number = (string) txtNumberCep.EditValue; ...

Проверка массива на наличие определенных чисел
Здравствуйте. Есть такой вопрос - как проверять в массиве наличие определенных чисел, а потом,...

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

17
90 / 90 / 15
Регистрация: 31.03.2010
Сообщений: 293
Записей в блоге: 1
21.11.2012, 20:13 2
C#
1
2
3
4
5
string str = "3Hello!2";
            if (str.Contains('3'))
                MessageBox.Show("Строка содержит цифру 3");
            else
                MessageBox.Show("Строка НЕ содержит цифру 3");
4
2 / 2 / 1
Регистрация: 23.10.2012
Сообщений: 38
21.11.2012, 21:34  [ТС] 3
Не совсем то что нужно, я не знаю какие числа могут быть.
0
90 / 90 / 15
Регистрация: 31.03.2010
Сообщений: 293
Записей в блоге: 1
21.11.2012, 21:41 4
C#
1
2
3
4
5
6
7
8
9
string A = "Hello2";
            for (int i = 0; i < A.Length; i++)
            {
                if (A[i] >= '0' && A[i] <= '9')
                {
                    MessageBox.Show("в строке есть цифры");
                    break;
                }
            }
3
2 / 2 / 1
Регистрация: 23.10.2012
Сообщений: 38
27.11.2012, 21:48  [ТС] 5
А можно как нибудь по коду ASCII это определить? (или юникод, незнаю)
0
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219
28.11.2012, 01:00 6
C#
1
2
3
4
5
6
7
8
            string s = "gsljeer254 hruahnu kdljfsghr6hn isr6ys \n #$^!@(#asdf";
            Regex r = new Regex(@"[\d!#h]"); // Соответствует любая цифра, восклицательный знак, решётка или буква h. Если нужны только цифры, то @"\d".
            Match m = r.Match(s);
            while (m.Success)
            {
                Console.WriteLine("{0}: {1}", m.Index, m.Value);
                m = m.NextMatch();
            }
Алсо:
Регулярные выражения.
Таблица ASCII.

Добавлено через 18 минут
Забыл написать, что надо подключать:
C#
1
using System.Text.RegularExpressions;
2
Заблокирован
28.11.2012, 01:38 7
что понимать под ненужными символами? И вообще зачем все усложнять, если все и так есть:

C#
1
2
3
4
5
6
7
        static bool IsNumberContains(string input)
        {
            foreach (char c in input)
                if (Char.IsNumber(c))
                    return true;
            return false;
        }
0
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219
28.11.2012, 02:19 8
adm_loro, вообще-то там не только цифры, так что твой пример не особо шикарен в этой ситуации. И что сложного в регулярных выражениях?
0
Заблокирован
28.11.2012, 02:35 9
я всегда исхожу из поставленной задачи. В регулярных выражениях нет ничего сложного, но вот это очень похоже на стрельбу из пушки по воробьям. Загляните в IL своего примера и станет понятно, т.е. это просто ужасно не эффективно.
0
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219
28.11.2012, 12:12 10
Цитата Сообщение от adm_loro Посмотреть сообщение
я всегда исхожу из поставленной задачи.
Что-то я не вижу решения поставленной задачи в твоём коде.
0
Не осилил Linux
267 / 61 / 6
Регистрация: 06.08.2009
Сообщений: 223
28.11.2012, 13:33 11
adm_loro прав, регулярки тут не нужны.
изучаем методы Char, в частности такие как
IsControl(Char) Показывает, относится ли указанный символ Юникода к категории управляющих символов.
IsDigit(Char) Показывает, относится ли указанный символ Юникода к категории десятичных цифр.
IsHighSurrogate(Char) Определяет, является ли заданный объект Char старшим символом-заместителем.
IsLetter(Char) Показывает, относится ли указанный знак Юникода к категории букв Юникода.
IsLetterOrDigit(Char) Показывает, относится ли указанный знак Юникода к категории букв или десятичных цифр.
IsLower(Char) Показывает, относится ли указанный символ Юникода к категории букв нижнего регистра.
IsLowSurrogate(Char) Определяет, является ли заданный объект Char младшим символом-заместителем.
IsNumber(Char) Показывает, относится ли указанный символ Юникода к категории цифр.
IsPunctuation(Char) Показывает, относится ли указанный символ Юникода к категории знаков препинания.
IsSeparator(Char) Показывает, относится ли указанный символ Юникода к категории знаков-разделителей.
IsSurrogate(Char) Указывает, имеет ли заданный символ заменяющую кодовую единицу.
IsSurrogatePair(Char, Char) Определяет, образуют ли два заданных объекта Char суррогатную пару.
IsSymbol(Char) Показывает, относится ли указанный символ Юникода к категории символьных знаков..
IsUpper(Char) Показывает, относится ли указанный символ Юникода к категории букв верхнего регистра.
IsWhiteSpace(Char) Показывает, относится ли указанный символ Юникода к категории пробелов.
3
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219
28.11.2012, 17:08 12
=OutlaW=, это всё круто, но он не сказал, что его символы относятся к какому-то конкретному набору символов.

Добавлено через 10 минут
И кстати, чем перебор строки на проверку всего подряд лучше, чем регулярные выражения?
0
Не осилил Linux
267 / 61 / 6
Регистрация: 06.08.2009
Сообщений: 223
28.11.2012, 17:19 13
Necronomicron,
Цитата Сообщение от Ilmir35 Посмотреть сообщение
мне нужно проверить есть ли там цифры или другие ненужные символы.
если ему нужны только буквы, пусть проверяет всё на IsLetter например.

Цитата Сообщение от Necronomicron Посмотреть сообщение
И кстати, чем перебор строки на проверку всего подряд лучше, чем регулярные выражения?
тем, что регэкспы это оверхэд.
вот смотри допустим я начинающий программист и не знаю регулярки (а я их прекрасно знаю между прочим).
у меня есть задача фильтрации символов по определенным категориям (буквы, пункты препинания, цифры, управляющие символы и т.п.).
я могу ее решить с помощью легкого, понятно, и общепринятого API в виде методов Char.
а могу как ты, начать использовать регулярки. а это значит что я потрачу время и на изучение реулярок, и на изучение Regex'a.
какой из двух способов прощу и понятнее?
и, как я считаю регулярки больше пригодны для парсинга, а не валидации.
2
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219
28.11.2012, 17:47 14
Цитата Сообщение от =OutlaW= Посмотреть сообщение
если ему нужны только буквы, пусть проверяет всё на IsLetter например.
Ну так-то да, а если ему нужны, скажем, все цифры, буквы W, Z и Q, вопросительный знак и ещё какой-нибудь страпон? Он не уточнил, так что пусть теперь сам выбирает, что ему ближе. Ну и если он хочет быть серьёзным программистом когда-нибудь, то ему всё равно стоит изучать всё, в т.ч. и регулярные выражения. Да и вообще, всегда нужно стремиться узнать что-то новое, хотя бы в своей области.
4
0 / 0 / 0
Регистрация: 26.11.2018
Сообщений: 8
Записей в блоге: 2
06.03.2019, 20:13 15
C#
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
        public static int App(string Message)
        {
            int position = 0;
            List<char> str = new List<char>();
 
 
            for (int i = 0; i < Message.Length; i++)
            {
                if (Message[i] >= '0' && Message[i] <= '9')
                {
                    while (Message[i] >= '0' && Message[i] <= '9')
                    {
                        str.Add(Message[i]);
                        position++;
                        break;
                    }
                }
            }
 
            string[] Result = new string[position];
            for (int i = 0; i < position; i++)
            {
                Result[i] = str[i].ToString();
            }
 
            string OutResult = "";
            for (int i = 0; i < Result.Length; i++)
            {
                OutResult += Result[i].ToString();
            }
 
            int Finish;
            int.TryParse(OutResult, out Finish);
 
            return Finish;
        }
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
06.03.2019, 21:46 16
AuDitekPlay, что это?
0
0 / 0 / 0
Регистрация: 26.11.2018
Сообщений: 8
Записей в блоге: 2
08.03.2019, 15:26 17
Вот используй это.

Задаешь строку в параметр, пример"Hello245" и ты получишь в результате число 245 типа int.

C#
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
        public static int Test(string Message)
        {
            int Finish;
            List<char> list = new List<char>();
 
 
            for (int i = 0; i < Message.Length; i++)
            {
                while (Message[i] >= '0' && Message[i] <= '9')
                {
                    list.Add(Message[i]);
                    break;
                }
            }
 
            string Result = "";
            for (int i = 0; i < list.Count; i++)
            {
                Result += list[i].ToString();
            }
 
            int.TryParse(Result, out Finish);
 
            return Finish;
        }
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
08.03.2019, 22:24 18
исчо лютщэ!!!
как только не из...я люди, не удосужившись ознакомиться с возможностями
C#
1
2
3
            var variable = "Hello245";
            var result = int.TryParse(string.Join("",variable.Where(x=>char.IsDigit(x))), out int n);
            Console.WriteLine(n);
2
08.03.2019, 22:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2019, 22:24
Помогаю со студенческими работами здесь

Проверка textBox на наличие определенных символов
Всем доброго дня. У меня возник вопрос как можно реализовать проверку textBox на наличие в начале...

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

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

Проверка строки на содержание определенных символов
К примеру есть строка (&quot;ООО Лампа/Москва&quot;), необходимо проверить содержит ли эта строка...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru