如果第一个数字是 1,请将其删除
本文关键字:删除 第一个 数字 如果 | 更新日期: 2023-09-27 18:37:05
我有一个字符串,我正在从中删除任何非数字值。 这部分效果很好,但如果它是 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
问题是你正在做一个作业而不是比较(=
vs ==
),并且num1[0]
(char
)和"1"
(string
)之间存在类型不匹配。 相反,您可以使用string.StartsWith
来增加一定程度的可读性。
if (num1.StartsWith("1")) { gn = num1.Remove(0, 1); }
您缺少一个等号并意外分配
if (num1[0] == '1') { gn = num1.Remove(0, 1); }
编辑:"1"也是一个字符,其中"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...
你说"我有一个字符串,我正在从中删除任何非数字值" - 相反,你应该使用正则表达式搜索/替换来删除任何不是数字的内容
string gn = System.Text.RegularExpressions.Regex.Replace("df87sdf248f7", @"'D", "");