Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
-11 / 0 / 1
Регистрация: 10.04.2017
Сообщений: 41

Проверка каждого символа в строке на предмет принадлежности к символам

19.05.2017, 11:22. Показов 7356. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот фрагмент кода
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
class WorkWithFirstString
    {
        public void FirstString(string[] lines)
        {
            int lfs = lines[0].Length;
            for (int i = 1; i <= lfs; i++)
            {
                  ???????????????????????
            }
            Console.WriteLine("Длинна первой строки = " + lfs);
        }
    }

Нужно каждый символ строки проверить на предмет число это или нет, и выдать на экран какой именно символ по счету в строке не число. Если все символы в строке числа, просто вывести строку на экран.

Добавлено через 7 минут
Понимаю что нужно использовать char.isDigit. И что нужно создавать массив, в котором каждый символ в строке это отдельный член массива. Хотелось бы использовать Split, но проблема в том, что символы между собой никак не разделяются. Единственное, что нужно игнорировать пробел.
Т.е. вот допустим строка - 123,5уе е6
То массив думаю должен быть таким {{1}, {2}, {3}, {,}, {5}, {у}, {е}, {е}, {6}}
На экране должно быть сообщение - 4,6,7,8 символы не числа
Ну или по каждому символу по отдельности не важно -
-4 символ не число
-6 символ не число и т.д.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2017, 11:22
Ответы с готовыми решениями:

В заданной строке после каждого символа вставить число, соответствующее коду этого символа
В заданной строке после каждого символа вставить число, соответствующее коду этого символа. PS сделать с использованием компонента Memo

Проверка каждого символа строки
У меня есть строка, к примеру &quot;hello, world&quot; Мне нужно обращаться к каждому символу, как мне это можно реализовать? В С++ можно было...

Отличие символа принадлежности к множеству от символа подмножества
Текст в учебнике &quot;Если X является случайной переменной с функцией распределения F(x), то любая функция от X, скажем g(X), также является...

6
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
19.05.2017, 11:29
BRAHAYFA,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
 
class Program
{
    static void Main()
    {
        string s = "343k3-45 4rt-454234";
        List<int> inds = new List<int>();
        for (int i = 0; i < s.Length; i++)
            if (!Char.IsDigit(s[i]))
                inds.Add(i + 1);
        if (inds.Count > 0)
            Console.WriteLine("Не цифры: " + string.Join(", ", inds));
        else
            Console.WriteLine(s);
    }
}
1
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
19.05.2017, 11:35
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
37
class Program
{
    static void Main(string[] args)
    {
        WorkWithFirstString workWithFirstString = new WorkWithFirstString();
        string[] str = { "Hello 1 world!", "Hello world!"};
 
        workWithFirstString.FirstString(str);
 
        Console.ReadKey();
    }
}
 
class WorkWithFirstString
{
    public void FirstString(string[] lines)
    {
        for (int i = 0; i < lines.Length; i++)
        {
            bool isString = true;
            for (int j = 0; j < lines[i].Length; j++)
            {
                if (char.IsDigit(lines[i][j]))
                {
                    isString = false;
                    Console.WriteLine("Найдено число:" + lines[i][j] + " " + j);
                }
            }
            if(isString)
            {
                Console.WriteLine(lines[i]);
            }
 
            Console.WriteLine("Длинна строки = " + lines[i].Length);
        }            
    }
}
1
-11 / 0 / 1
Регистрация: 10.04.2017
Сообщений: 41
19.05.2017, 12:00  [ТС]
Даценд, Все идеально. Но у меня тут частный случай выскочил именно с пробелом. Чисто визуально строка "1" и "1 " в файле блокнота ничем не отличаются, но если использовать этот код, то будет выдавать сообщение, что 2 символ не число (это пробел).
Конечно можно было бы не учитывать пробел, но возможна такая ситуация "1 2 " - и эта строка меня уже не устраивает и ее на экран выводить нельзя.
В общем идеальная строка для вывода на экран должна состоять либо только из чисел, либо только из чисел и в конце пробел или пробелы.
Как это реализовать?

Добавлено через 11 минут
EveKS, спасибо, твой код бы подошел, но у меня в main так
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
public static void Main(string[] args)
        {
            string filePath = args[0];
            var txt = new WorkWithTxt.InputDataFromTxt();
            txt.FormMassiveString(filePath);
            var prfs = new MainFS.WorkWithFirstString();
            prfs.FirstString(txt.NewFile);
            Console.ReadKey(true);
        }

NewFile это массив строк из текстового файла
Если использовать твой код, то он работает по всему файлу, а не только по первой строке.
Я для этого в первом посте специально указал эту строчку
C#
1
int lfs = lines[0].Length;
мб была моя ошибка, что не расписал еще и мейн
0
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
19.05.2017, 12:23
Цитата Сообщение от BRAHAYFA Посмотреть сообщение
FirstString(string[] lines)
Цитата Сообщение от BRAHAYFA Посмотреть сообщение
prfs.FirstString(txt.NewFile)
Не стыкуется.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
19.05.2017, 12:27
Лучший ответ Сообщение было отмечено BRAHAYFA как решение

Решение

BRAHAYFA,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
 
class Program
{
    static void Main()
    {
        string s = "343 334 t534qq  ", temp=s;
        List<int> inds = new List<int>();
        temp = temp.TrimEnd();
        for (int i = 0; i < temp.Length; i++)
            if (!Char.IsDigit(temp[i]))
                inds.Add(i + 1);
        if (inds.Count > 0)
            Console.WriteLine("Не цифры: " + string.Join(", ", inds));
        else
            Console.WriteLine(s);
    }
}
0
-11 / 0 / 1
Регистрация: 10.04.2017
Сообщений: 41
19.05.2017, 14:06  [ТС]
Цитата Сообщение от EveKS Посмотреть сообщение
Сообщение от BRAHAYFA
FirstString(string[] lines)
Сообщение от BRAHAYFA
prfs.FirstString(txt.NewFile)
Не стыкуется.
Я же написал, NewFile это массив строк
C#
1
2
3
4
5
6
7
8
9
10
class InputDataFromTxt
    {
        public string[] NewFile;
        public void FormMassiveString(string file)
        {
            NewFile = File.ReadAllLines(file);
            ...
            ...
        }
    }
Добавлено через 1 час 18 минут
Даценд, Спасибо огромное, все работает.
Я первый раз встречаюсь с TrimEnd.
Все. Разобрался как он работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.05.2017, 14:06
Помогаю со студенческими работами здесь

Удаление каждого 3 символа в строке
Требуется составить программу, вычеркивающую каждую 3 букву из слова Х. Что-то никак не могу понять как это сделать

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

Количество вхождений каждого символа в строке
Помогите решить задачу пожалуйста.Определить количество вхождений каждого символа в строке. Вот то что смог написать. #include...

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

Найти вхождение каждого символа в строке
Пример: Привет! Как дела?) Ответ: п - 1 р - 1 и - 1 в - 1 е - 2 ...... Нашел решение этой задачи, но оно на C++.Вот оно


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru