powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Правильная обработка строки с помощью Replace
11 сообщений из 11, страница 1 из 1
Правильная обработка строки с помощью Replace
    #38772612
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня!!! Есть вот такой массив с данными (данные текстовые):

05.10
01.34
10.01
15.06
01.02


Т.е. 2 разряда до точки и 2 разряда после. Необходимо заменить все эти значения на 1-разрядные, т.е. убрать лишние нули перед 1-й цифрой. Итог должен быть таким:

5.10
1.34
10.1
15.6
1.2


Пробовала так:

Replace(mass(0), "0", ""), заменяет всю строку, т.е. в первом значении получается 5.1, а должно получиться 5.10. Подскажите, как правильно написать эту функцию? Заранее спасибо.
...
Рейтинг: 0 / 0
Правильная обработка строки с помощью Replace
    #38772622
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Регулярные выражения помогут
...
Рейтинг: 0 / 0
Правильная обработка строки с помощью Replace
    #38772623
sld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sld
Гость
replace ом никак не сделать
делайте регуляркой, перебором, или конвертом
...
Рейтинг: 0 / 0
Правильная обработка строки с помощью Replace
    #38772636
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никогда не работала с регулярными выражениями, если не сложно, помогите пож-та. Просто надо быстро сделать.
...
Рейтинг: 0 / 0
Правильная обработка строки с помощью Replace
    #38772679
Sergey TSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если у вас есть проблема, и вы собираетесь решать ее с использованием регулярных выражений, то у вас есть две проблемы.

Делайте обычным способом.

Код: c#
1.
2.
3.
4.
5.
6.
7.
string[] mas = { "05.10", "01.34", "10.01", "15.06", "01.02" };

for (int i = 0; i < mas.Length; i++)
{
  string[] s = mas[i].Split('.');
  mas[i] = int.Parse(s[0]).ToString() + "." + int.Parse(s[1]).ToString();
}
...
Рейтинг: 0 / 0
Правильная обработка строки с помощью Replace
    #38772686
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настенька,

Код: c#
1.
str = Regex.Replace(str, @"0(\d)", @"$1")
...
Рейтинг: 0 / 0
Правильная обработка строки с помощью Replace
    #38772719
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
String.TrimStart('0') и не парьтесь
...
Рейтинг: 0 / 0
Правильная обработка строки с помощью Replace
    #38773011
Фотография @k@DElpher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79String.TrimStart('0') и не парьтесь
01.02 -> 1.2
10.01 -> 10.1

Точка тут не отделяет дробную часть числа, а отделяет одно число от другого.
То есть:
автор05;10
01;34
10;01
15;06
01;02
Это пары целых чисел.
...
Рейтинг: 0 / 0
Правильная обработка строки с помощью Replace
    #38773040
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@k@DElpherArm79String.TrimStart('0') и не парьтесь
01.02 -> 1.2
10.01 -> 10.1

Точка тут не отделяет дробную часть числа, а отделяет одно число от другого.
То есть:
автор05;10
01;34
10;01
15;06
01;02
Это пары целых чисел.
А, не увидел. Но в любом случае принцип тот же:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
            string[] array = new string[] {"11.22", "03.33", "04.04", "50.50", "06.60"};

            string[] result = array.Select(
                a =>
                    {
                        string[] splittedValue = a.Split('.');
                        return string.Format("{0}.{1}", splittedValue[0].TrimStart('0'), splittedValue[1].TrimStart('0'));
                    }
                ).ToArray();


            Array.ForEach(result, Console.WriteLine);
            Console.ReadKey();



Вывод:
Код: plaintext
1.
2.
3.
4.
11.22
3.33
4.4
50.50
6.60
...
Рейтинг: 0 / 0
Правильная обработка строки с помощью Replace
    #38773288
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   static Regex re = new Regex(@"0*(?<d>[\d\.]+)", RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.Compiled);
        public static string ReplaceNull(string str)
        {
            if (string.IsNullOrEmpty(str))
                return str;
            return re.Replace(str, (m) =>
                {
                    var res = m.Groups["d"].Value;
                    return res;
                });
        }
...
Рейтинг: 0 / 0
Правильная обработка строки с помощью Replace
    #38773347
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ
Код: c#
1.
RegexOptions.Multiline | RegexOptions.Singleline


Почему так? и где ExplicitCapture?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Правильная обработка строки с помощью Replace
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]