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

Поменять местами цифры слева и справа от запятой

29.09.2014, 22:27. Показов 2730. Ответов 6
Метки нет (Все метки)

Как поменять местами цифры слева и справа от запятой (123,456-124,356).
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2014, 22:27
Ответы с готовыми решениями:

Поменять местами часть предложения слева и справа от тире
Нужно написать программу, которая находит в предложении "acer aspire - timeline" тире и меняет...

Поменять местами подмассивы, расположенные слева и справа от единственного нулевого элемента
В массиве целых чисел А есть один нулевой элемент. Поменять местами подмассивы, расположенные слева...

Ввести целое число. Определить, симметрично ли оно, т.е. одинаковы ли цифры слева и справа (12321). Записать 3 последние цифры в одномерный массив.
Ввести целое число. Определить, симметрично ли оно, т.е. одинаковы ли цифры слева и справа (12321)....

Выяснить, какие цифры (по одной справа и слева) надо приписать к числу 1022
Выяснить, какие цифры (по одной справа и слева) надо приписать к числу 1022, чтобы полученное число...

6
870 / 720 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
29.09.2014, 23:00 2
Bekzod_Hazard,
Я так понимаю надо поменять первый и последний
C#
1
2
3
4
5
6
7
8
9
            string s = "(123,456-124,356)";
 
            var arr = s.Split(new[] {',', '(', ')'}, StringSplitOptions.RemoveEmptyEntries);
 
            var t = arr[0];
            arr[0] = arr[arr.Length - 1];
            arr[arr.Length - 1] = t;
 
            Console.WriteLine("({0})",string.Join(", ", arr.Select(x => x)));
0
Life Builder
532 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,752
29.09.2014, 23:04 3
можно вот так
using System.Text.RegularExpressions;
C#
1
2
3
4
string str = "123,456-124,356";
 
str = Regex.Replace(str, @"(\d+),(\d+)-(\d+),(\d+)", m => string.Format("{1},{0}-{3},{2}", m.Groups[1], m.Groups[2], m.Groups[3], m.Groups[4]));
Console.WriteLine(str);
0
1087 / 830 / 490
Регистрация: 09.04.2014
Сообщений: 1,966
29.09.2014, 23:09 4
Лучший ответ Сообщение было отмечено Bekzod_Hazard как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
 string s = "123,456";
            int index = s.IndexOf(',');
            if (index > 0 && index < s.Length - 1)
            {
                char[] chars = s.ToCharArray();
                char c = chars[index - 1];
                chars[index - 1] = chars[index + 1];
                chars[index + 1] = c;
                s = new string(chars);
            }
            Console.WriteLine(s);
Добавлено через 1 минуту
XRoy, sk007,
Цитата Сообщение от Bekzod_Hazard Посмотреть сообщение
(123,456-124,356).
это больше выглядит на пример преобразования, а не исходные данные
1
Life Builder
532 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,752
29.09.2014, 23:17 5
XRoy, Почему в вашем коде нужно было в последней строчке
arr.Select(x => x) можно было написать и без Select(x => x)?

Добавлено через 6 минут
Цитата Сообщение от nedel Посмотреть сообщение
это больше выглядит на пример преобразования, а не исходные данные
Если это так, то еще проще
C#
1
2
3
4
string str = "123,456";
 
str = Regex.Replace(str, @"(\d),(\d)", m => string.Format("{1},{0}", m.Groups[1], m.Groups[2]));
Console.WriteLine(str);
0
1087 / 830 / 490
Регистрация: 09.04.2014
Сообщений: 1,966
29.09.2014, 23:31 6
Цитата Сообщение от sk007 Посмотреть сообщение
Если это так, то еще проще
Оно конечно через Regex проще, но форум-то для начинающих
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
30.09.2014, 11:06 7
без регулярки:
C#
1
2
3
string str = "123,456";
int idx = str.IndexOf(',');
str = str.Remove(idx - 1) + str[idx + 1] + "," + str[idx - 1] + str.Remove(0, idx+2);
или чисто на массиве:
C#
1
2
3
4
5
6
7
8
9
10
11
12
char[] ch = "123,456".ToCharArray();
            for (int idx = 1;idx< ch.GetLength(0) - 1; idx++)
            {
                if (ch[idx] == ',')
                {
                    char tmp = ch[idx - 1];
                    ch[idx - 1] = ch[idx + 1];
                    ch[idx + 1] = tmp;
                    break;
                }
            }
            Console.WriteLine(new string(ch));
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2014, 11:06
Помогаю со студенческими работами здесь

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

Задача 56. Выяснить, какие цифры (по одной справа и слева) надо приписать к числу 1022,
Задача 56. Выяснить, какие цифры (по одной справа и слева) надо приписать к числу 1022, чтобы...

Какие цифры (по одной справа и слева) надо приписать к числу 1022, чтобы полученное число делилось на 7, 8, 9
Вариант №1 Выяснить какие цифры(по одной справа и слева) надо приписать к числу 1022, чтобы...

Выяснить, какие цифры (по одной справа и слева) надо приписать к числу 1022, чтобы полученное число делилось на 7, 8
Выяснить, какие цифры (по одной справа и слева) надо приписать к числу 1022, чтобы полученное число...


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

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

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