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

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
10.10.2014, 09:05
    #38772622
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная обработка строки с помощью Replace
Регулярные выражения помогут
...
Рейтинг: 0 / 0
10.10.2014, 09:07
    #38772623
sld
sld
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная обработка строки с помощью Replace
replace ом никак не сделать
делайте регуляркой, перебором, или конвертом
...
Рейтинг: 0 / 0
10.10.2014, 09:19
    #38772636
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная обработка строки с помощью Replace
Никогда не работала с регулярными выражениями, если не сложно, помогите пож-та. Просто надо быстро сделать.
...
Рейтинг: 0 / 0
10.10.2014, 09:57
    #38772679
Sergey TSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная обработка строки с помощью Replace
Если у вас есть проблема, и вы собираетесь решать ее с использованием регулярных выражений, то у вас есть две проблемы.

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

Код: 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
10.10.2014, 10:03
    #38772686
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная обработка строки с помощью Replace
Настенька,

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

Точка тут не отделяет дробную часть числа, а отделяет одно число от другого.
То есть:
автор05;10
01;34
10;01
15;06
01;02
Это пары целых чисел.
...
Рейтинг: 0 / 0
10.10.2014, 12:59
    #38773040
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная обработка строки с помощью Replace
@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
10.10.2014, 15:16
    #38773288
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная обработка строки с помощью Replace
Код: 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
10.10.2014, 15:45
    #38773347
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная обработка строки с помощью Replace
ЕвгенийВ
Код: c#
1.
RegexOptions.Multiline | RegexOptions.Singleline


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


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