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

String.split()位于元字符+

罗新
2023-03-14
问题内容

我正在制作一个简单的程序,该程序将处理方程式的字符串输入中的方程式,但是在运行时,由于尝试将“ +”替换为“
+”而出现异常,因此我可以分割字符串在空间。我应该如何使用

字符串replaceAll方法替换这些特殊字符?下面是我的代码

线程“主”中的异常java.util.regex.PatternSyntaxException:在索引0 + ^附近悬挂元字符’+’

 public static void parse(String x){
       String z = "x^2+2=2x-1";

       String[] lrside =  z.split("=",4);
       System.out.println("Left side: " + lrside[0] + " / Right Side: " + lrside[1]);
       String rightside = lrside[0];
       String leftside = lrside[1];

       rightside.replaceAll("-", " -");
       rightside.replaceAll("+", " +");
       leftside.replaceAll("-", " -"); leftside.replaceAll("+", " +");
       List<String> rightt = Arrays.asList(rightside.split(" "));
       List<String> leftt = Arrays.asList(leftside.split(" "));

       System.out.println(leftt);
       System.out.println(rightt);

问题答案:

replaceAll
接受正则表达式作为其第一个参数。

+是一个特殊字符,它表示一个量词,表示 一个或多个出现 。因此,应转义以指定文字字符+

rightside = rightside.replaceAll("\\+", " +");

(字符串是不可变的,因此有必要将变量分配给的结果replaceAll);

替代方法是使用字符类,该字符类将删除元字符状态:

rightside = rightside.replaceAll("[+]", " +");

不过,最简单的解决方案是使用replace使用非正则表达式String文字的方法:

rightside = rightside.replace("+", " +");


 类似资料:
  • 问题内容: 我想根据所有可能的分隔符(例如逗号,冒号,半冒号,句号,空格,hihenhen等)来解析整个文件。 假设我有一个假设的字符串行“ Hi,X How-how are:any you?” 我应该得到带有项目Hi,X,How,how,are,any和you的输出数组。 如何在String.split方法中指定所有这些定界符? 提前致谢。 问题答案: 接受一个正则表达式,在这种情况下,您希望将

  • 我陷入了一件非常愚蠢的事情中,但我无法摆脱自己。 MongoDB v4.2和我有一个包含以下文档的集合: 我正在使用mongo-c驱动程序,我只想查询“\u id.B”字段,但我不知道怎么做。我尝试过: “projection”:{“\u id.B”:1}:它返回整个\u id对象_id.A 当此对象位于id字段内时,如何才能仅获取一些对象元素?第一个选项适用于不在\u id字段内但不在此处的对象

  • 问题内容: 我正在尝试将String的字符拆分为String数组。我在这里找到了解决方案。 该解决方案是完美的,但是我不知道如何工作。我熟悉方法的基础知识。有人可以提供解释吗? 问题答案: 是由否定前瞻组成的正则表达式。是用于表示字符串开头的锚。匹配所有0长度的字符串,不跟在字符串的开头。换句话说,它匹配所有0长度的字符串, 但 字符串的开头 除外 。 __ 例如,在字符串中,将有3个匹配项:一个

  • 问题内容: 我有以下数据: 我想定界标记。 分隔符在这里。 我的分隔符设置器是: 然而, 没有给出所需的结果。 问题答案: 无需像您所做的那样通过将分隔符拆分来设置分隔符。 这是可以编译和运行的完整程序: 如果要对模式使用分割,可以使用或。 要查看并付诸实践,下面是使用所有三种方法的示例: 如果要经常使用相同的模式进行拆分,则建议使用模式。顺便说一句,输出为:

  • 我有这些要素: 这是他们的CSS配置。 但第一个元素落后于第二个元素。

  • 问题内容: 我正在制作基于文本的骰子滚轴。它接受“ 2d10 + 5”之类的字符串,并作为滚动结果返回一个字符串。我的问题出现在令牌生成器中,该令牌生成器将字符串拆分为有用的部分,以便我解析为信息。 这会产生奇怪的意外结果。我不知道是什么原因造成的。可能是正则表达式,我的误解,或者Java只是Java。这是正在发生的事情: 产生字符串数组。这是对的。 产生字符串数组。这是对的。 产生字符串数组。这