У меня есть такая строка:

1.1.168.192

Мне нужно преобразовать его в это, с целыми числами, но в обратном порядке:

192.168.1.1

Кажется, это простой вопрос, но я не могу понять. Я пытаюсь что-то сделать в цикле for прямо сейчас, но я не знаю, как заставить его работать.

0
midoriyakuzan 2 Фев 2022 в 20:03
5
Наивное решение: string.Join(".", input.Split('.').Reverse())
 – 
Lasse V. Karlsen
2 Фев 2022 в 20:04
Речь идет о перестановке всех символов в строке. ОП просто хочет изменить порядок чисел между периодами, сохраняя при этом числа одинаковыми.
 – 
juharr
2 Фев 2022 в 20:06
Блин, ты прав, я пропустил это.
 – 
zcoop98
2 Фев 2022 в 20:09
Связанный, но не дубликат: Лучший способ перевернуть строку в С#
 – 
zcoop98
2 Фев 2022 в 20:10
@LasseV.Karlsen Большое спасибо, это спасло мне жизнь!! Это сработало. Чистый раствор. Я пробовал несколько тупых циклов.
 – 
midoriyakuzan
2 Фев 2022 в 20:15

2 ответа

Лучший ответ

Это может помочь:

string[] splitted = "1.1.168.192".Split('.');
Array.Reverse(splitted);
string reversed = string.Join(".", splitted);

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

1
ibrahim-dogan 2 Фев 2022 в 20:13

Вы можете разделить свою строку и перевернуть этот массив и соединить его вместе следующим образом:

string reverseIP(string ip) { // ip = "1.1.168.192"
    string[] ipParts = ip.split('.'); // ["1", "1", "168", "192"]
    Array.Reverse(ipParts);
    
    return String.Join(".", ipParts);
}
0
Wolfimschafspelz 2 Фев 2022 в 20:16