删除逗号分隔字符串中值的前几个字符

时间:2014-07-21 09:37:20

标签: c# string

我在应用程序

中有以下逗号分隔的字符串
string s= "01334644,1376673,1378437,01499972,1507527,01522373,01551596"; 

我想删除字符串中每个值的第一个字符..如果它为零

最后我需要一个像这样的字符串

string s = "1334644,1376673,1378437,1499972,1507527,1522373,1551596"; // out put string  1

7 个答案:

答案 0 :(得分:3)

您可以使用String.Split获取所有令牌,TrimStart('0')删除前导零,String.Join以逗号再次连接最终字符串:

string s= "01334644,1376673,1378437,01499972,1507527,01522373,01551596";
s = string.Join(",", s.Split(',').Select(str => str.TrimStart('0')));
  

...删除第一个字符......

如果您不想删除所有前导零,但最多只删除一个:

s = string.Join(",", s.Split(',')
    .Select(str => str.StartsWith("0") ? str.Substring(1) : str));

答案 1 :(得分:2)

您可以直接在源字符串中工作,删除以逗号开头的所有0:

string s2 = s.Replace(",0", ",").TrimStart('0')

答案 2 :(得分:1)

这是一种可以做到的方法:

string s = "01334644,1376673,1378437,01499972,1507527,01522373,01551596";
String result = String.Join(",", s.Split(',')
                .Select(c => Convert.ToInt32(c).ToString()));

答案 3 :(得分:0)

 string s= "01334644,1376673,1378437,01499972,1507527,01522373,01551596"; 
 var str = string.Join(",", s.Split(',').Select(strCheck => strCheck.StartsWith("0") ? strCheck.Substring(1) : strCheck));

答案 4 :(得分:0)

将值转换为int并返回String:

var values = s.Split(',').Cast<int>();
s = string.Join(",", values);

答案 5 :(得分:0)

string[] str = null;
string s = "01334644,1376673,1378437,01499972,1507527,01522373,01551596";
str = s.Split(",");
s = "";
for (int i = 0; i <= str.Length - 1; i++) {
    s = s + Conversion.str(i).Substring(1) + " ,";
}
    // to avoid the last comma
Interaction.MsgBox(s.Trim(","));

答案 6 :(得分:0)

正则表达式怎么样?

string s = "01334644,1376673,1378437,01499972,1507527,01522373,01551596";
string result = Regex.Replace(s, @"0*(\d+)", "$1");

0*表示任意数量的零,\d+表示一个或多个数字,( )表示创建一个组,我们可以使用$1进行调用。

我认为,对于像"00,000001972000,000"这样的字符串,测试甚至可以正常工作。在这种情况下,几个零变为单个。