我有一个字符串,我将从中删除任何非数字值。这部分工作得很好,但如果它是1,我就无法使我的语法准确地删除第一个数字。这是我尝试过的,但它会出现编译时错误:
string num1 = "1abcdedg2345;
string gn = null;
if (num1[0] = "1") { gn = num1.Remove(0, 1); }
else { gn = num1; }
Console.WriteLine(gn);
我需要改变什么才能使gn为2345?我当前的语法总是有gn = 12345
答案 0 :(得分:2)
问题在于您正在进行分配而不是比较(=
vs ==
)并且num1[0]
(char
)和{之间存在类型不匹配{1}}("1"
)。相反,您可以使用string.StartsWith
来增加可读性。
string
答案 1 :(得分:1)
你错过了一个平等并做了意外分配
if (num1[0] == '1') { gn = num1.Remove(0, 1); }
编辑:也' 1'是一个炭,其中" 1"是一个字符串(感谢评论)
答案 2 :(得分:1)
在某些情况下(使用示例字符串工作),您可以使用简单的
执行此操作string s = "1abcdedg2345";
s = s.TrimStart('1');
// s = "abcdedg2345"
注意......它将删除所有开始1,因此它无法使用此
string s = "1111abcdedg2345";
s = s.TrimStart('1');
// s = "abcdedg2345" it may be correct or not... i don't know...
答案 3 :(得分:0)
你说“我有一个字符串,我从中删除任何非数字值” - 而是你应该使用正则表达式搜索/替换删除任何不是数字
string gn = System.Text.RegularExpressions.Regex.Replace("df87sdf248f7", @"\D", "");