C # добавление пробела после нескольких символов в строке - PullRequest
0 голосов
/ 14 марта 2011

Я хочу добавить пробел в строке (строка из массива) после 2 символов, например: 1234567890 должно быть 12 34 56 78 90, есть предложения, как это сделать?

Ответы [ 4 ]

4 голосов
/ 14 марта 2011
"0123567236359783590203582835"
.ToCharArray()
.Aggregate("",
(result, c) => result += ((!string.IsNullOrEmpty(result) && (result.Length+1) % 3 == 0)
                          ? " " : "")
                         + c.ToString()
            );

// --> 01 23 56 72 36 35 97 83 59 02 03 58 28 35
3 голосов
/ 14 марта 2011

Вам, вероятно, придется сделать цикл следующим образом:

int i = 0;
int amount = 2;
string s = "1234567890";
string withspaces = "";

while (i+amount < s.Length) {
  s += s.Substring(i,i+amount);
  s += " ";
  i = i + amount;
}

Это может быть сложно при использовании строк, поэтому обязательно прочитайте об эффективной конкатенации строк

0 голосов
/ 14 марта 2011

Я бы рекомендовал следующие шаги

  1. Создать цикл For, который будет проходить по длине входной строки.

  2. Во время каждого запускаДля цикла, который включает в себя один элемент строки в результате, например:

    result + = input [i];

  3. Внутри цикла отслеживает количество и после каждого count%2 == 0Конкат пространство к результату.

    result + = "";

Надеюсь, это поможет.

0 голосов
/ 14 марта 2011

Если вы хотите специально отформатировать фиксированное количество чисел, например, в приведенном выше примере, вам подойдет следующее.

int n = 1234567890;
string s = String.Format("{0:00 00 00 00 00}", n);

Обратите внимание, это предполагает, что ваш 1234567890 хранится как число.Он не будет форматироваться, если n имеет тип string.Вы можете преодолеть это, приведя n к числу перед форматированием.

Если у вас неограниченное количество символов, вам понадобится более гибкое решение.

...