1

我有一个字符串类型的序列号。

像这样;

String.Format("{0:####-####-####-####}", "1234567891234567" );

我需要看到这样,1234-5678-9123-4567;

Bu这个代码不起作用?

你能帮助我吗?

4

2 回答 2

3

该语法需要一个int,试试这个:

String.Format("{0:####-####-####-####}", 1234567891234567);

编辑:如果您想在字符串上使用此语法,请尝试以下操作:

String.Format("{0:####-####-####-####}", Convert.ToInt64("1234567891234567"))
于 2009-09-29T10:21:45.747 回答
2

对于####-####-####-####,您将需要一个数字。但你给它喂了一根绳子。

在左侧用额外的零填充字符串会更实用,因此它正好变成 16 个字符。然后在字符串内的三个位置插入破折号。将其转换为 Int64 也可以,但如果这些字符串变大或开始包含非数字,那么您将遇到问题。

string Key = "123456789012345";
string FormattedKey = Key.PadLeft(16, '0').Insert(12, "-").Insert(8, "-").Insert(4, "-");

那应该是格式化的替代方法。它使键正好为 16 个字符,然后从右到左插入三个破折号。(更容易跟踪索引。)

可能还有很多其他选择,但这个工作得很好。

于 2009-09-29T10:24:05.540 回答