如何返回分隔某个字符串的分隔符?(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
非常感谢,我们将尝试此功能。