Допустим, дана строка "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);
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть ли способ получать сообщения по расписанию в MassTransit? Например, каждый час начинать получать сообщения из очереди и останавливаться,...
Имеется класс-наследник DataGrid MWFВ нем программно надо выделить строку (одну) по критерию