gpt4 book ai didi

java - java 7中如何转义括号?

转载 作者:行者123 更新时间:2023-11-30 06:38:04 25 4
gpt4 key购买 nike

我正在尝试从 BufferedReader.readLine() 中分割一些输入

String delimiters = " ,()";
String[] s = in.readLine().split(delimiters);

这给了我一个运行时错误。

我尝试过但不起作用的事情:

String delimiters = " ,\\(\\)"; 

String delimiters = " ,[()]";

String[] s = in.readLine().split(Pattern.quote("() ,"));

我尝试使用 .replaceAll 替换 (),但没有成功

我尝试过这个:

    input = input.replaceAll(Pattern.quote("("), " "); 
input = input.replaceAll(Pattern.quote(")"), " ");
input = input.replaceAll(Pattern.quote(","), " ");
String[] s = input.split(" ");

但是 s[] 最终会出现这样的空白槽 -> ""不知道为什么要这样做

最佳答案

我的作品,用于

String delimiters = "[ \\(\\)]"

编辑:

您忘记了方括号,它表示“框中的任何字符都将用作分隔符”,它是一个正则表达式。

编辑:

删除空元素:想法是将定界符集的任何字谜替换为仅 1 个定界符

喜欢。

    // regex to match any anagram of a given set of delimiters in square brackets

String r = "(?!.*(.).*\1)[ \\(\\)]";

input = input.replaceAll(r, "(");

// this will result in having double or more combinations of a single delimiter, so replace them with just one

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

然后您将获得带有任何单个分隔符的输入。然后使用split,就不会出现空白字了。

关于java - java 7中如何转义括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44867324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com