是否可以查看字符串中定义的长度

本文关键字:定义 字符串 是否 | 更新日期: 2023-09-27 17:51:10

c#中有没有一种方法可以查看字符串中定义的字符数?

意思是——我有以下号码需要更改为此编号的336-5010-0000-00-10-336-5993-0000-00-10

我只想检查第二段数字是否在29996000 之间

我正在从CSV中读取这些数据,我只是不想这个声明被重复一百万次

if (columns[0].Contains(“5010”)) columns[0] = columns[0].Replace(“5010”, @”5993”);

是否可以查看字符串中定义的长度

string test = "336-5010-0000-00-10";
string foo = Regex.Replace(test, @"('d+'-)(2999|[3-5][0-9]{3}|6000)((-'d+){3})", "${1}5993${3}");

另类疯狂LINQ答案:

string foo2 = string.Join("-", from number in test.Split('-').Select((str, index) => new { str = str, index = index })
              let num = Convert.ToInt32(number.str)
              select number.index == 1 && num >= 2999 && num <= 6000 ? "5993" : number.str);

http://dotnetfiddle.net/yzROoK

编辑:更明显的正则表达式。

您想要

  1. 将"-"字符上的字符串拆分为一个名为stringParts的字符串[]
  2. 将stringParts[1]转换为整数
  3. 对步骤2中的整数值进行验证
string[] stringParts = columns[0].Split('-');
int valueOfConcern = Convert.ToInt32(stringParts[1]);
if (valueOfConcern >= 2999 && valueOfConcern <= 6000)
{
    //take your action
}
string numberStr = "336-5010-0000-00-10";
int number = int.Parse(numberStr.Substring(4, 4));

numberStr.Substring(4, 4)只提供从第4个字符开始的四位数字,int.Parse()将其转换为数字。

然后您可以测试number是否在您指定的范围内,替换它,等等。