Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Math 计算c#中的数学表达式,如果它存在,则应处理空白_Math - Fatal编程技术网

Math 计算c#中的数学表达式,如果它存在,则应处理空白

Math 计算c#中的数学表达式,如果它存在,则应处理空白,math,Math,我尝试使用以下代码来计算数学表达式。目前,表达式解析器仅在每个字符之间都有空格的情况下工作。例:(x+y)*2。。。。如果表达式为(x+y)*2,则表达式不求值。尝试使用正则表达式,以便表达式计算时使用空格或不使用空格,但仍然无法达到目标。非常感谢您的指导/帮助 using System; using System.Text.RegularExpressions; public class Example { public static void Main() { st

我尝试使用以下代码来计算数学表达式。目前,表达式解析器仅在每个字符之间都有空格的情况下工作。例:(x+y)*2。。。。如果表达式为(x+y)*2,则表达式不求值。尝试使用正则表达式,以便表达式计算时使用空格或不使用空格,但仍然无法达到目标。非常感谢您的指导/帮助

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "(x + y)*2";
      string pattern = "\\s+";
      string replacement = " ";
      Regex rgx = new Regex(pattern);
      string result = rgx.Replace(input, replacement);

      Console.WriteLine("Original String: {0}", input);
      Console.WriteLine("Replacement String: {0}", result);                             
   }
}

如果两个术语之间有多余的空格可以,请尝试以下代码:

public static void Main()
{
  string input = "(x + y)*2";
  string pattern = "";
  string replacement = " ";
  Regex rgx = new Regex(pattern);
  string result = rgx.Replace(input, replacement);

  Console.WriteLine("Original String: {0}", input);
  Console.WriteLine("Replacement String: {0}", result);                             
}

在上面的输出中,您希望替换字符串是什么?您对输出中的额外空格是否满意,例如:
(x+y)*2
?谢谢。尝试了上面的代码,它在表达式ex:(x+y)*2的每个字符之间插入空格,这很好,因为我现在可以计算带空格或不带空格的表达式。如果输入已经包含空格,如何修改代码以避免插入额外的空格。例如:如果我输入(x+y)*2,通过使用上述代码,我得到的输出为(x+y)*2。是否可以仅在输入没有空格时插入空格,在其他情况下,修剪现有的一个额外空格。请让我知道。@Manisha添加另一个答案,这不是一个好方法,但会得到正确的结果。
public static void Main()
{
  string input = "(x + y)*2";
  string pattern = "";
  string replacement = " ";
  Regex rgx = new Regex(pattern);
  string result = rgx.Replace(input, replacement);

  pattern = "  ";
  replacement = " ";
  rgx = new Regex(pattern);
  result = rgx.Replace(result, replacement);
  Console.WriteLine("Original String: {0}", input);
  Console.WriteLine("Replacement String: {0}", result);                             
 }