当前位置: 首页 > 面试题库 >

如何在运算符上将数学表达式拆分为定界符,同时将其保留在结果中?

冯卓
2023-03-14
问题内容

我需要像这样拆分一个表达式

a+b-c*d/e

并获得abcdeseperately(字符串数组)以及=-*d/(也为运营商的阵列)分开。我尝试过像:

String myString;

String myString={"a+b-c*d/e");

String[] result=new String();

String[] separator=new String[]{"+","-","/","*"};

result=myString.split(separator);

但是,它显示了一个错误。怎么解决呢?


问题答案:

第一个问题:-

多重声明 String myString;

第二个问题:-

字符串初始化不正确。末尾缺少双引号。从两端卸下支架和支架。

String myString = "a+b-c*d/e";

第三个问题:-

用String对象而不是数组对象初始化的String数组。

String[] result=new String();  // Should be `new String[size]`

实际上,您无需事先初始化数组。

第四个问题:-

String.split使用正则表达式作为参数,您已经传递了一个数组。不管用。

用: -

String[] result = myString.split("[-+*/]");

拆分所有运营商。

关于您的声明:-

以及=, -, *, d, /(也包括一系列运算符)。

我不明白你在这里想要什么。您的示例字符串不包含=。而且d不是operator。请查看是否要对其进行编辑。

更新:-

如果您打算将运算符也保留在数组中,则可以使用此正则表达式:-

String myString= "a+b-c*d/e";
String[] result = myString.split("(?<=[-+*/])|(?=[-+*/])");
System.out.println(Arrays.toString(result));

/*** Just to see, what the two parts in the above regex print separately ***/
System.out.println(Arrays.toString(myString.split("(?<=[-+*/])")));
System.out.println(Arrays.toString(myString.split("(?=[-+*/])")));

输出:-

[a, +, b, -, c, *, d, /, e]
[a+, b-, c*, d/, e]
[a, +b, -c, *d, /e]

(?<=...)手段look-behind assertion(?=...)手段look-ahead assertion



 类似资料:
  • 问题内容: 我需要正则表达式的帮助来解决以下问题: 我有一个字符串,例如“ 1£23 $ 456 $£$” 当我拆分它时,我希望字符串数组中的输出包含: 有人对如何最好地解决这个问题有任何想法吗?该解决方案需要满足以下附加要求: 也各执分隔符:,,,和 非定界符字符只是在定界符前带有可选空格的数字。 任何此类空格都是值的一部分,而不是分隔符本身。 问题答案: 使用更强大的功能代替。下面的代码应该可

  • 问题内容: 我有以下字符串(Java 1.5): 我需要一个数组: 用Java最方便的方法是什么? 问题答案: 这将为您提供所需的数组,只有第一项为空。和: 这将使数组没有空的第一项。 此处的关键是零宽度正向超前(非捕获构造)(请参阅regex pattern docs)。 表示“或者;或:” 是字边界的-在那里是为了不将第一个视为定界符(因为它是序列的开头)

  • 问题内容: 我有很多Python字符串如,,,和我想要拆分这些字符串,这样他们将在一个列表,格式,等我已经使用了很多不同的方法分割,但我想我需要只需在有数学符号(例如)的地方执行拆分。我还需要去除空白。 目前,我正在使用返回的代码。相反,我想回来。 问题答案: 从字符串中删除空格后,应拆分字符集 :

  • 我希望能够根据子字符串分隔符拆分字符串,在分隔符子字符串的第一个字符之前开始拆分。现在: 将给我,但我希望得到

  • 使用JavaScript,我试图使用正则表达式将段落拆分为句子。我的正则表达式不考虑括号内的句子,我希望保留分隔符。 我在这里放了一个代码示例 jsFiddle.net

  • 问题内容: 我有一个多行字符串,该字符串由一组不同的定界符定界: 我可以使用将该字符串拆分为多个部分,但似乎无法获取与定界符匹配的实际字符串。 换句话说,这就是我得到的: 这就是我要的 是否有任何JDK使用分隔符regex拆分字符串但又保留分隔符的方法? 问题答案: 你可以使用和。像这样: 你将获得: 最后一个是你想要的。 等于选择之前;或之后的空字符;。 希望这可以帮助。 编辑 Fabian S