MVC / C#在字符串

时间:2015-07-08 10:25:00

标签: c# asp.net-mvc string format

我有一串4个数字:

  

1234

我希望以最优雅的方式将其转换为MVC

  

1,2,3,4

I've tried this:

  

codeToSend.ToString( “#,#”);

但这会输出“1,234”(我真的很期待)。

我怀疑下面会在每个数字后面加一个逗号,但无济于事。

  

codeToSend.ToString( “#,#,#,#”);

I have also tried string.format,但我再次遇到同样的问题。

  

var formattedString = string.Format(“{0:0,0}”,1234);

这样做最有效的方式是什么?

注意: 数字字符串的长度始终为4位数 - 仅限数字。我不想使用Insert,因为这不是非常优雅的IMO,我知道这个问题之前已经以类似的方式提出过,但它在关键方面总是略有不同(例如格式化为数千,不是每一个数字或只是不优雅!)。

2 个答案:

答案 0 :(得分:5)

如何使用string.Join

 new Thread(new Runnable() {
            public void run() {  
                String text = panel.getInfo();
                info.post(new Runnable(){
                     public void run() {
                        info.setText(text);
                     }
                  });
            }
       }).start(); 

如果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

答案 1 :(得分:0)

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

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");

此外,如果您正在处理许多此类值,则应在使用之前编译正则表达式。

 var target = "1234";
 var digitExceptLastRegex = new Regex(@"(\d)(?=.)", RegexOptions.Compiled);
 var result = regex.Replace(target, "$1,");

但我还没有衡量实际表现。