C # Преобразование десятичной дроби (строка) в обычную строку - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть строка с закодированным текстом с использованием десятичной дроби, как бы я декодировал десятичную в нем с помощью C #?

Строка выглядит так:

"03211212122771217573772312402503648" - The original C# line compiled.

0 32 1 1 2 1 2 1 2 2 77 121 75 73 77 2 3 1 2 4 0 2 5 0 3 6 4 8 - The spaces between each ASCII character / decimal set.

Все пробелы между ними являются пробелами между символами ASCII.

Спасибо.

Edit:

Полагаю, мой вопрос не был ясен ...

В настоящее время он находится в числовом формате в строке, закодированной в виде символа.

Я хочу декодировать данные в нем для отправки на сервер.

Сервер не принимает числа, а вместо этого хочет получать необработанные данные, как мне поступить? Как: 77 - М 121 - у и т. Д ...

Как бы я это сделал?

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Это невозможно.Объединяя значения без разделителя, вы пропустили информацию, необходимую для декодирования строки.

Если мы рассмотрим строку с самого начала, вы не уйдете далеко, пока невозможно определить, что это значит.

Первое значение может быть определено как 0, если вы знаете, что никакие значения не сохраняются с ведущими нулями, например 032.

А второе значение больше невозможноопределить, что было оригиналом.Это может быть 3, 32, 321 или даже 321121212277121757377.

Редактировать:

Если добавить разделитель между числами, легко разобратьстрока:

int[] values = str.Split('-').Select(Int32.Parse).ToArray();

Объяснение кода:

str.Split('-') возвращает массив строк, где каждая строка содержит число.

.Select(Int32.Parse) будет анализировать каждыйстрока в число, это более короткая форма .Select(s => Int32.Parse(s)).Лямбда-выражение не требуется, поскольку метод Int32.Parse уже подходит для создания делегата для метода Select.

.ToArray() преобразует IEnumerable<int>, который Select возвращает в массив целых чисел.

1 голос
/ 15 апреля 2011

Если вы ставите пробелы между разными числами, вы можете получить что-то вроде:

IEnumerable<int> numbers = "1 2 3 4 5".Split().Select(s => int.Parse(s));
...