Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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#_.net_String - Fatal编程技术网

如何返回分隔某个字符串的分隔符?(C#)

如何返回分隔某个字符串的分隔符?(C#),c#,.net,string,C#,.net,String,我在数学运算符处拆分用户输入的字符串,我想知道是否有办法准确记住代码中哪个运算符充当分隔符 private void button1_Click(object sender, EventArgs e) { string userInput = textBox1.Text; char[] operators = { '+', '-', '*', '/' }; //splits the entered string into substrings after encounte

我在数学运算符处拆分用户输入的
字符串
,我想知道是否有办法准确记住代码中哪个运算符充当分隔符

private void button1_Click(object sender, EventArgs e)
{
    string userInput = textBox1.Text;
    char[] operators = { '+', '-', '*', '/' };
    //splits the entered string into substrings after encountering operator characters
    string[] operands = userInput.Split(operators);
}
我建议标记化而不是拆分(在最简单的情况下,您可以使用
Regex.Split
而不是
string.Split
):

如果
textBox1.Text==“5*6+7”
标记将是
{“5”、“*”、“6”、“+”、“7”}
。您现在所要做的就是检查每个
标记
是否是运算或操作数。大概是这样的:

  // {"5", "6", "7"}
  string[] operands = tokens
    .Where(token => !operators.Any(op => op.ToString() == token))
    .Select(item => item.Trim())
    .Where(item => !string.IsNullOrEmpty(item))
    .ToArray();

  // {"*", "+"}
  string[] operations = tokens
    .Where(token => operators.Any(op => op.ToString() == token))
    .ToArray(); 
我建议标记化而不是拆分(在最简单的情况下,您可以使用
Regex.Split
而不是
string.Split
):

如果
textBox1.Text==“5*6+7”
标记将是
{“5”、“*”、“6”、“+”、“7”}
。您现在所要做的就是检查每个
标记
是否是运算或操作数。大概是这样的:

  // {"5", "6", "7"}
  string[] operands = tokens
    .Where(token => !operators.Any(op => op.ToString() == token))
    .Select(item => item.Trim())
    .Where(item => !string.IsNullOrEmpty(item))
    .ToArray();

  // {"*", "+"}
  string[] operations = tokens
    .Where(token => operators.Any(op => op.ToString() == token))
    .ToArray(); 

感谢您使用
Regex.Escape
非常感谢,我们将尝试此功能。感谢您使用
Regex.Escape
非常感谢,我们将尝试此功能。