在字符串中的每个数字后面加一个逗号

本文关键字:一个 字符串 数字 | 更新日期: 2023-09-27 18:01:29

我有一个4个数字的字符串:

1234年

我想在MVC中以最优雅的方式将其转换为

1、2、3、4

我试过了:

codeToSend.ToString ("#,#");

,但这输出"1,234"(这是我真正期望的)。

我怀疑下面的代码会在每个数字后面加一个逗号,但是没有用。

codeToSend.ToString ("#,#,#,#");

我也试过字符串。格式,但我又面临同样的问题。

var formattedString =字符串。格式("{0时0}",1234年),

那么最有效的方法是什么呢?

注意:数字字符串将始终是4位数长,并且只能是数字。我不想使用插入,因为在我看来,这不是很优雅,我知道这个问题之前已经以类似的方式被问到过,但它在关键方面总是略有不同(例如格式化为数千,而不是每个数字,或者只是不优雅!)。

在字符串中的每个数字后面加一个逗号

直接用string.Join怎么样?

int i = 1234;
string.Join(",", i.ToString().ToCharArray()); // 1,2,3,4

如果1234string,只使用;

string s = "1234";
string.Join(",", s.ToCharArray()); // 1,2,3,4

string s = "1234";
string.Join(",", s.ToList()); // 1,2,3,4

这个可能更有效。(但并不优雅)

var target = "1234";
var result = Regex.Replace(target , @"('d)(?=.)", "$1,");

考虑到固定的字符串长度,没有前瞻性也可以得到相同的结果(读取更简单,效率更高)

var target = "1234";
var result = Regex.Replace(target, @"('d)('d)('d)('d)", "$1,$2,$3,$4");

同样,如果你要处理很多这样的值,你应该在使用。

之前编译regex。
 var target = "1234";
 var digitExceptLastRegex = new Regex(@"('d)(?=.)", RegexOptions.Compiled);
 var result = regex.Replace(target, "$1,");

但是我还没有测量实际性能。