我在应用程序
中有以下逗号分隔的字符串string s= "01334644,1376673,1378437,01499972,1507527,01522373,01551596";
我想删除字符串中每个值的第一个字符..如果它为零
最后我需要一个像这样的字符串
string s = "1334644,1376673,1378437,1499972,1507527,1522373,1551596"; // out put string 1
答案 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"
这样的字符串,测试甚至可以正常工作。在这种情况下,几个零变为单个。