Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用循环概念从字符串中拆分运算符_C# - Fatal编程技术网

C# 使用循环概念从字符串中拆分运算符

C# 使用循环概念从字符串中拆分运算符,c#,C#,我有一个查询,就像我有一个输入 AB_C + ABC_D/ * ABC_DE/ =ABC.AVO 因为我只需要拆分(*、+、=)运算符,其他运算符将以列表形式拆分。 如何在c#net中实现这一点 我期望产出 list 1={“AB_C”、“ABC_D/”、“ABC_DE/”、“ABC.AVO”} 列表2={“+”、“*”、“=”}第一个列表可以通过String.Split()实现。第二个列表可以通过迭代输入并查看每个字符来实现: static void Main(string[] ar

我有一个查询,就像我有一个输入

AB_C + ABC_D/ * ABC_DE/ =ABC.AVO
因为我只需要拆分(*、+、=)运算符,其他运算符将以列表形式拆分。 如何在c#net中实现这一点

我期望产出

list 1={“AB_C”、“ABC_D/”、“ABC_DE/”、“ABC.AVO”}

列表2={“+”、“*”、“=”}

第一个列表可以通过String.Split()实现。第二个列表可以通过迭代输入并查看每个字符来实现:

    static void Main(string[] args)
    {
        string input = "AB_C + ABC_D/ * ABC_DE/ =ABC.AVO";

        string operators = "*+=";
        List<string> list1 = new List<string>(input.Split(operators.ToArray(), StringSplitOptions.RemoveEmptyEntries));
        for(int i =0; i<list1.Count; i++)
        {
            list1[i] = list1[i].Trim();
        }
        List<string> list2 = new List<string>();
        for(int i = 0; i < input.Length; i++)
        {
            if(operators.Contains(input.Substring(i,1)))
            {
                list2.Add(input.Substring(i, 1));
            }
        }

        Console.WriteLine("list1 = " + String.Join(",", list1.ToArray()));
        Console.WriteLine("list2 = " + String.Join(",", list2.ToArray()));

        Console.ReadLine();
    }
static void Main(字符串[]args)
{
字符串输入=“AB_C+ABC_D/*ABC_DE/=ABC.AVO”;
字符串运算符=“*+=”;
List list1=新列表(input.Split(operators.ToArray(),StringSplitOptions.RemoveEmptyEntries));
对于(inti=0;i
string s=“AB_C+ABC_D/*ABC_DE/=ABC.AVO”;
字符串[]字符={};
字符串[]op={};
字符串l=“”;
int-idx=0;
int it=0;
对于(int i=0;i=1)
{
字符[++idx]=l;
l=“”;
}
op[it]=s[i];
}
其他的
{
l=l+s[i];
}
}
如果(长度>=1)
{
字符[++idx]=l;
}

请提供更多详细信息:到目前为止您尝试了什么?您编写的代码做了什么?这与您想要或期望的有什么不同?您在具体问题上遇到了什么困难?Stack Overflow不是一个代码编写站点。您需要自己努力解决问题,并分享该ef的结果为了使您的问题集中在您试图解决的问题的某些特定的、狭隘的方面,请阅读并获取有关如何为此网站编写一个好的、可回答的问题的更多信息。对于给您带来的不便,我深表歉意,事实上我是新使用此网站的人,我将更改我所有的错误,非常感谢您的帮助我们宝贵的时间
string s ="AB_C + ABC_D/ * ABC_DE/ =ABC.AVO";

    string[] chars = {};
    string[] op = {};
    string l="";
    int idx=0;
    int it=0;
    for(int i=0;i<s.length;i++)
    {
        if(s[i]='+' || s[i] == '=' || s[i] =='/' || s[i] =='*')
        {
            if(l.length>=1)
            {
                chars[++idx] = l;
                l = ""; 
            }
            op[it] = s[i];
        }
        else
        {
            l = l + s[i]; 
        }
    }
    if(l.length>=1)
    {
        chars[++idx] = l;
    }