浏览字符串并检查是否包含字符并将之前的字符保存在列表中

本文关键字:字符 保存 列表 存在 串并 字符串 检查 是否 浏览 包含 | 更新日期: 2023-09-27 17:56:45

我想通过一个字符串,并检查字符串中是否有可用的字符。例如:我的字符串是:string test = "100+20+3-17+2"所以现在我检查我的字符串并检查字符:

List<string> numbers= new List<string>();
foreach( char c in test)
{
   if (c =='+'|| c =='-'||c =='/'||c =='*')
   {
     //Now here i want to save all chars before '+' '-'  '/'  '*' in my list numbers. in this example: save 100, 20,3,17,2 in my list
   }
}

你会怎么做?

浏览字符串并检查是否包含字符并将之前的字符保存在列表中

只需将字符串与字符分开即可

List<string> numbers = new List<string>();
string test = "100+20+3-17+2";
char[] chars = new char[] { '+', '-', '*', '/' };
numbers = test.Split(chars).ToList();

如果字符不在"+"、"-"、"/"、"*"中,则可以将字符串联成字符串。当运算符来时,您可以将刺添加到列表中,并空字符串

List<string> numbers= new List<string>();
string curNumber="";
foreach( char c in test)
{
   if (c =='+'|| c =='-'||c =='/'||c =='*')
   {
     numbers.Add(curNumber);
     curNumber="";
   }
   else
   {
     //also you can add operators in other list here
     curNumber+=c.ToString();
   }
}
numbers.Add(curNumber);

我会使用StringBuilder。当您浏览原始字符串以检查字符时,将它们添加到字符串生成器中。当您找到拆分字符时,请在列表中添加 StringBuilder.ToString 并清空 StringBuilder。

代码应如下所示(尚未测试):

List<string> numbers= new List<string>();
StringBuilder sb = new StringBuilder();
foreach( char c in test)
{
    if (c =='+'|| c =='-'||c =='/'||c =='*')
    {
        //Now here i want to save all chars before '+' '-'  '/'  '*' in my list numbers. in this example: save 100, 20,3,17,2 in my list
        numbers.Add(sb.ToString());
        sb.Clear();
    }
    else
    {
        sb.Append(c);
    }
}

使用 String.Split(Char[]) 获取拆分字符串的数组