0 / 0 / 1
Регистрация: 02.02.2016
Сообщений: 128
1

Разделить имя отчество и фамилию

24.08.2020, 20:39. Показов 4328. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как можно это реализовать более лаконично. Спасибо!
Моя вариация:
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
static (string first, string midle, string last) SplitNames(string FullName)
        {
            string first = null, second = null, third = null;
            //пишем все до пробела
            for(int i = 0; i<FullName.Length; i++)
            {
                if(FullName[i] != ' ')
                {
                    first += FullName[i];
                } else
                {
                    //если нашли пробел заканчиваем записывать имя пишем отчество
                    for(int j = i+1; j<FullName.Length; j++)
                    {
                        if (FullName[j] != ' ')
                        {
                            second += FullName[j];
                        }
                        else
                        {
                            //дошли до пробела записываем фамилию
                            for(int d = j+1; d<FullName.Length; d++)
                            {
                                third += FullName[d];
 
                            }
                            break;
                        }
                    }
                    break;
                }
            }
            return (first, second, third);
 
        } //

Вызвали:
C#
1
var SplitedNames = SplitNames("Vladislav Pavlovich Musica");
Получаем:
C#
1
2
3
Console.WriteLine(SplitedNames.first);
            Console.WriteLine(SplitedNames.midle);
            Console.WriteLine(SplitedNames.last);
Вывод:
Vladislav
Pavlovich
Musica
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.08.2020, 20:39
Ответы с готовыми решениями:

Вывести фамилию, имя, отчество без пробелов. Сколько букв имеет имя.
как росписать в си-шарпе?

Вывести фамилию имя и отчество (разные столбцы) в один combobox
Здравствуйте. У меня есть таблица со столбцами Фамилия Имя Отчество и т.д. теперь мне надо вывести...

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

Ввести свою фамилию, имя и отчество как одно текстовое дано. Вывести фамилию, имя, отчество в отдельных строках
Ввести свою фамилию, имя и отчество как одно текстовое дано. Вывести фамилию, имя, отчество в...

5
263 / 182 / 87
Регистрация: 03.05.2020
Сообщений: 790
24.08.2020, 21:35 2
Цитата Сообщение от igorbukur Посмотреть сообщение
более лаконично
В заданной строке текста определите количество слов. Каждое слово отделено друг от друга пробелом
0
66 / 48 / 21
Регистрация: 14.08.2020
Сообщений: 133
24.08.2020, 23:30 3
Лучший ответ Сообщение было отмечено igorbukur как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            string fullName = "Vladislav Pavlovich Musica";
 
            string name = string.Empty;
            string lastName = string.Empty;
            string patronymic=string.Empty;
 
            string pattern = @"(?<Name>\w+) (?<Patronymic>\w+) (?<LastName>\w+)";
 
            Match m = Regex.Match(fullName, pattern);
 
           if (m.Success)
            {
                name = m.Groups["Name"].Value;
                patronymic = m.Groups["Patronymic"].Value;
                lastName = m.Groups["LastName"].Value;
            }
1
Жесток & Наивен
482 / 187 / 91
Регистрация: 02.02.2017
Сообщений: 427
25.08.2020, 04:44 4
Лучший ответ Сообщение было отмечено igorbukur как решение

Решение

А так нельзя было? Или надо свой метод сплит реализовать?
C#
1
2
3
4
5
        static (string last, string first,  string midle) SplitNames(string FullName)
        {
            var partsName = FullName.Split(' ');
            return (partsName[0], partsName[1], partsName[2]);
        }
C#
1
2
3
4
            var  (last, first, midle) = SplitNames("Петров Петр Петровимч");
            var temp = SplitNames("Петров Петр Петровимч");
            Console.WriteLine($"Фамилия {last} : имя {first} : отчество {midle}");
            Console.WriteLine($"Фамилия {temp.last} : имя {temp.first} : отчество {temp.midle}");
2
access_now
25.08.2020, 08:25
  #5

Не по теме:

Цитата Сообщение от sanec38 Посмотреть сообщение
А так нельзя было?
нормальные герои всегда идут в обход )

0
0 / 0 / 1
Регистрация: 02.02.2016
Сообщений: 128
25.08.2020, 08:25  [ТС] 6
У как красиво, спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2020, 08:25
Помогаю со студенческими работами здесь

Введите в одной строке фамилию, имя, отчество. Отделите из этой строки отдельно фамилию, имя, отчество
Задача 3. Введите в одной строке фамилию, имя, отчество. Отделите из этой строки отдельно фа-милию,...

Введите в одной строке фамилию, имя, отчество. Отделите из этой строки отдельно фамилию, имя, отчество
Введите в одной строке фамилию, имя, отчество. Отделите из этой строки отдельно фамилию, имя,...

Разделить строку, содержащую имя, отчество и фамилию
Напишите программу, которая преобразует строку, содержащую имя, отчество и фамилию человека, к...

Как правильно разделить в БД фамилию имя отчество
Всем привет. Есть БД Paradox, но я думаю это не принципиально. Составили БД по дурацки как то в...

Нужно разделить имя, фамилию и отчество на 3 разных премменных
Доброго вреени суток! Помогите решить такую проблему: Нужно чтобы String fio = &quot;Имя Отчесто...

Ввести имя, отчество и фамилию; поменять имя и отчество местами
Ввести имя, отчество и фамилию. Поменять имя и отчество местами (через тип данных string)...


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

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

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