String.Format () разделить целочисленное значение - PullRequest
2 голосов
/ 08 апреля 2009

Мне интересно, возможно ли для .Net String.Format () разбить целое число на две подстроки. Например, у меня есть номер 3234, и я хочу отформатировать его как 32X34. Мое целое число всегда будет иметь 4 или 6 цифр. Возможно ли это с помощью String.Format ()? Если да, какой формат строки будет работать?

P.S. Я знаю, что есть другие способы сделать это, но мне особенно интересно знать, может ли String.Format () справиться с этим.

Ответы [ 3 ]

11 голосов
/ 08 апреля 2009

Вы можете указать свой собственный формат при вызове String.Format

String.Format("{0:00x00}", 2398) // = "23x93"
4 голосов
/ 08 апреля 2009

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

Если ваша цель - поместить 'x' в центр строки, ответ Самуила не будет работать для 6-значных чисел. String.Format("{0:00x00}", 239851) возвращает «2398x51» вместо «239x851»

Вместо этого попробуйте:

String.Format(val<10000 ? "{0:00x00}" : "{0:000x000}", val)

В любом случае метод называется Составное форматирование .

(Я предполагаю, что числа будут между 1000 и 999999 включительно. Даже тогда числа от 1000 до 1009 включительно сообщат число после «х» с ненужным начальным «0». Так что, возможно, этот подход верен для значений от 1010 до 999999 включительно.)

0 голосов
/ 08 апреля 2009

Нет, не может.

На самом деле, кажется, что ваши целые числа не являются целыми числами. Возможно, их следует хранить в классе с собственным методом ToString (), который будет форматировать их таким образом.

...