.net333 Ответов: 2

Изменение позиции мобильного номера


Текущий Заказ: 1 2 3 4 5 6 7 8 9 10


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

------

порядок: 4 1 5 2 3 6 7 8 9 10

Что я уже пробовал:

Попробовал с помощью
StringBuilder
но это не работает.

2 Ответов

Рейтинг:
17

OriginalGriff

Прежде всего, вам нужно определить - или даже решить - каким должен быть новый порядок и почему: в вашем примере нет ничего очевидного, что показывает, почему новый порядок должен быть "сначала четвертая цифра, затем первая, пятая, чтобы следовать за этим"..."
Как только вы знаете порядок, это довольно тривиально.
Предполагая, что ваш заказ находится в массиве ints:

int[] order = {4, 1, 5, 2, 3, 6, 7, 8, 9, 10};

и ваше "данное число" находится в строке:
string input = "9966234340";

Затем просто создайте массив символов с тем же количеством значений, что и входные данные:
char[] output = new char[input.Length];

Простой цикл изменит их порядок:
for (int i = 0; i < input.Length; i++)
   {
   output[i] = input[order[i] - 1];
   }

И, наконец, превратить его обратно в строку:
string result = new string(output);


.net333

Огромное спасибо. Я буду следовать вашим указаниям.

Рейтинг:
1

Patrice T

Цитата:
Пробовал с StringBuilder, но это не работает.

Потому что у вас есть секретная ошибка в вашем секретном коде, что делает решение тоже секретным.
Вы не объяснили правила обмена номерами, вы даже не задали вопрос.

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]

Отладка кода C# в Visual Studio - YouTube[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.