2009-04-07 32 views
2

我想知道.Net的String.Format()是否可以将一个整数拆分为两个子字符串。例如,我有一个数字3234,我想把它格式化为32X34。我的整数将始终有4或6位数字。这可能使用String.Format()?如果是这样,什么格式的字符串可以工String.Format()拆分整数值

P.S. 我知道还有其他的方法来做到这一点,但我特别想知道如果String.Format()可以处理这个。

+0

@James - 你想如何分割一个6位数的数字?你没有明确指定。 – JeffH 2009-04-07 22:38:33

回答

11

调用String.Format

String.Format("{0:00x00}", 2398) // = "23x93" 
+0

+1让我给那个镜头。 – James 2009-04-07 21:52:30

-1

不,它不能。

实际上,你的整数似乎并不是整数。也许他们应该存储在一个类中,并使用它自己的ToString()方法来格式化它们。

+0

Gah,至少在发布之前尝试一次。 – Samuel 2009-04-07 21:52:31

+0

尝试什么?我已经完成了ToString覆盖,它工作。我从来没有做过如下所示的格式字符串,也没有看过。 – 2009-04-07 21:56:57

4

詹姆斯时,您可以指定自己的格式,我不知道你已经完全确定的问题。

如果您的目标是将字符串的中心中的'x'放入,Samuel's answer将不适用于6位数字。 String.Format("{0:00x00}", 239851)的回报,而不是 “239x851”

而是 “2398x51”,尝试:

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

在这两种情况下,该方法被调用Composite Formatting。 (假设数字在1000到999999之间),即使这样,包含1000和1009之间的数字也会在'x'后面报告一个不必要的前导'0'的数字,所以也许这种方法是对于1010和999999之间的数值有效。)