在字符串中的每个数字后面加一个逗号
本文关键字:一个 字符串 数字 | 更新日期: 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
如果1234
是string
,只使用;
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,");
但是我还没有测量实际性能。