删除第一个数字如果是1

时间:2016-03-02 13:32:47

标签: c#

我有一个字符串,我将从中删除任何非数字值。这部分工作得很好,但如果它是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

4 个答案:

答案 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", "");