Как удалить символ из строки при посимвольной обработке строки в цикле?

178
30 августа 2018, 04:40

Допустим, дана строка "ab+0.1973-1.1"

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

С помощью чего это делается? Находил способ удаления символов до определенного знака, но тут определенного знака нет, т.к. может быть дана строка например "ab+0.1973+1.1" и уже не сработает.

Знаю, что ещё можно через Remove, но не знаю, как.

Код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _270г
{
    class Program
    {
        static void Main(string[] args)
        {
            int flag,k,ch;
            flag = 0;
            k = 0;
            ch = 0;
            string str = "ab+0.1973-1.1";
            foreach (char c in str)
            {
                ch++;
                if ('.' == c)
                {
                    flag = 1;
                }
                if ((flag == 1) && (char.IsDigit(c)))
                {
                    k++;
                    if (k == 3)
                    {
                        while (char.IsDigit(c))
                        {
                            str = str.Remove(ch-1,1);
                        }
                    }
                }
            }
            Console.WriteLine(str);
        }
    }
}
READ ALSO
Masstransit, получение сообщений по расписанию

Masstransit, получение сообщений по расписанию

Есть ли способ получать сообщения по расписанию в MassTransit? Например, каждый час начинать получать сообщения из очереди и останавливаться,...

172
Выделение строки в DataGrid

Выделение строки в DataGrid

Имеется класс-наследник DataGrid MWFВ нем программно надо выделить строку (одну) по критерию

169
Automapper и Nullable свойства

Automapper и Nullable свойства

Есть модель и дто

154