如果第一个数字是 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

如果第一个数字是 1,请将其删除

问题是你正在做一个作业而不是比较(= 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", "");