Java 删除句子中的括号并分隔字符串
所以。。如果我得到一个字符串,例如:Java 删除句子中的括号并分隔字符串,java,string,Java,String,所以。。如果我得到一个字符串,例如: (P=>Q) ^ (L ^ M => P) ^ A 或 如何删除这些括号并将所需的子字符串保留为以下形式: P=>Q, L^M=>P, A 及 谢谢 public static void main(String[] args) { String input = "((~B V P) V M) ^ (B V ~P) ^ (B V ~M)"; String result = input.replaceAll("[ ()
(P=>Q) ^ (L ^ M => P) ^ A
或
如何删除这些括号并将所需的子字符串保留为以下形式:
P=>Q, L^M=>P, A
及
谢谢
public static void main(String[] args) {
String input = "((~B V P) V M) ^ (B V ~P) ^ (B V ~M)";
String result = input.replaceAll("[ ()]", "")
.replaceAll("\\^", ", ");
System.out.println(result);
}
输出:
~BVPVM,BV~p,BV~M
我相信有人会想出一些超级棒的正则表达式。同时,这就足够了。看来您正在为逻辑公式编写解析器。下面是我要做的:
- 为公式定义形式语法,并使用工具(如)生成解析器
- 使用生成的解析器解析字符串,并构造基于树的数据结构来表示这些公式
- 遍历树并根据需要打印字符串。在您的情况下,这意味着将连词改为逗号,其他内容保持不变
~BVPVM, BV~P, BV~M
public static void main(String[] args) {
String input = "((~B V P) V M) ^ (B V ~P) ^ (B V ~M)";
String result = input.replaceAll("[ ()]", "")
.replaceAll("\\^", ", ");
System.out.println(result);
}