Java String.split错误

标签 java string split

我的方法成功地采用了二叉表达式树并将其转换为前缀、后缀和中缀表示法。但是,由于最终字符串的准确性,它必须完全相等。

因此,在返回输出之前,我将运行一个方法来快速编辑该输出以消除任何缺陷。

(* (+ 8 4) (- 7 (/ 6 3))) ===> (*(+ 8 4)(- 7(/ 6 3)))

((8 4 +) (7 (6 3 /) -) ) =====> ((8 4 +)(7 (6 3 /)-))

需要改变的是括号之间的间距。我的目标是找到字符串的所有大小写,将其删除,然后重新输入字符串(不含空格)。

underlines are extra spaces (*(+ 8 4)(- 7_(/ 6 3)))

我的代码应该是 String.split(") ("); 但错误标志... 不匹配的结束 ')')(???

public String antibullshiter(String out) {
    out = out.replaceFirst(") (", "X"); //edited
    String[] parts = out.split("X");
    String part1 = parts[0];
    String part2 = parts[1];
    part1 = part1 + ")";
    part2 = part2 + "(";
    out = part1 + part2;
return out;}

如何利用 String.split() 的强大功能?

编辑:谢谢大家,但我意识到我只需要处理主要方法本身

最佳答案

正如其他答案/评论中提到的,String.split 采用模式字符串(正则表达式),这就是您收到不匹配的括号错误的原因。您可以使用 Pattern.quote获取与您的字符串文字匹配的模式字符串的方法:

yourString.split(java.util.regex.Pattern.quote(") ("));

关于Java String.split错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20234003/

相关文章:

javascript - 在 Javascript 中以空格拆分文本文件的最快方法

database - 显示与搜索与数据库中的排序字符串

string - 如何在 go 模板中连接两个字符串?

c++ - 如何递增表示为字符串的 IP 地址?

Java - 有关使用 "split()"的帮助

java - JFrame 或 Jpanel 中的 repaint() 方法?

java - 简单的 Java GIS 编辑器

java - 一次写入一个值

java - Scanner nextline() 仅打印新行

java - 正则表达式不适用于 java 中的多个字符串拆分?