Java 要替换的正则表达式是什么;[“和”和“];从字符串数组?

Java 要替换的正则表达式是什么;[“和”和“];从字符串数组?,java,Java,我试图替换字符串数组中的[和]字符[ab,cd,ef],以获得如下输出: ab, cd, ef 使用正则表达式 (^\s*|[\n\t\r\[\]]) 但我无法获得所需的输出。为什么不使用字符串类中的替换方法 String str = "[ab, cd ,ef]"; str.replace("[", "").replace("]", ""); 为什么不使用字符串类中的replace方法 String str = "[ab, cd ,ef]"; str.replace("[", "").

我试图替换字符串数组中的
[
]
字符
[ab,cd,ef]
,以获得如下输出:

ab, cd, ef
使用正则表达式

(^\s*|[\n\t\r\[\]])

但我无法获得所需的输出。

为什么不使用字符串类中的替换方法

String str = "[ab, cd ,ef]";

str.replace("[", "").replace("]", "");

为什么不使用字符串类中的replace方法

String str = "[ab, cd ,ef]";

str.replace("[", "").replace("]", "");
这将有助于:

String str = "[ab, cd, ef]";

System.out.println(str.replaceAll("[\\[\\]]", ""));
解释:它使用in regex替换所有不需要的字符

输出

ab, cd ,ef
这将有助于:

String str = "[ab, cd, ef]";

System.out.println(str.replaceAll("[\\[\\]]", ""));
解释:它使用in regex替换所有不需要的字符

输出

ab, cd ,ef

虽然它不是正则表达式,但如果我正确理解了您想要的内容(您正在对数组中的字符串执行一个操作,并修剪结果以获得CSV),这也会起作用:

String data = "[Hello World]";
System.out.println(String.copyValueOf(data.toCharArray(),1,data.length()-2));

也就是说,你最好不要这样做,因为它不灵活(如果你想要分号或冒号而不是逗号,那么你必须重新做一次替换!)。理想情况下,您应该使用for each进行迭代,然后添加适当的分隔符。

虽然它不是一个正则表达式,但如果我正确理解了您的要求(您正在对数组中的字符串进行排序,并修剪结果以获得CSV)-这也可以:

String data = "[Hello World]";
System.out.println(String.copyValueOf(data.toCharArray(),1,data.length()-2));


也就是说,你最好不要这样做,因为它不灵活(如果你想要分号或冒号而不是逗号,那么你必须重新做一次替换!)。理想情况下,您应该使用for each进行迭代,然后添加适当的分隔符。

您的代码看起来如何?您的正则表达式过于复杂,但它应该能够找到
[
]
(以及很少的其他字符),所以唯一的问题是如何使用它。请尝试用“\”转义“[”。=>“[“@RavindraHV OP确实转义
[
]
但没有正确设置问题的格式以显示问题。请尝试刷新此页面以查看问题的更新版本。对。谢谢。Kimia sn的答案正是我要建议的。另外,创建一个不包含第一个和最后一个字符的新数组也可以。但我想Michael Markidis的答案正是OP想要的。为什么不呢下面是@kimia sn答案???你的代码看起来怎么样?你的正则表达式太复杂了,但它应该能够找到
[
]
(和其他几个字符),所以唯一的问题是你如何使用它。试着用“\”来转义“[”。=>“@RavindraHV OP确实转义
[
但没有正确设置问题的格式以显示问题。请尝试刷新此页面以查看问题的更新版本。对。谢谢。Kimia sn的答案正是我要建议的。另外,创建一个不包含第一个和最后一个字符的新数组也可以。但我想Michael Markidis的答案正是OP想要的。为什么不呢下面是@kimia sn的答案???对不起,我错删了我的评论。这里再次说明:据我所知,
[ab,cd,ef]
是OP打印输出字符串数组时显示的内容。这不是字符串本身。你要做的是创建一个
字符串,然后设置
“[ab,cd,ef]”
作为它的值。您的解决方案是有效的,但是您可以通过用字符串数组替换
字符串来修改答案,只是为了清楚起见。@javanob我不太确定您得到的是什么。字符串数组,或者任何数组,都有实际的“[”和“]”字符。我怎么可能不使用字符串就提供我的示例呢?你可以这样定义一个字符串数组
string[]str={“20”、“30”、“40”};
@JavaNoob好的。从那里你将如何删除“[”和“]”字符?对不起,我错误地删除了我的评论。这是:就我所知,
[ab,cd,ef]
是OP打印输出字符串数组时显示的内容。它不是字符串本身。您要做的是创建
字符串,然后设置
“[ab,cd,ef]”
作为它的值。您的解决方案是有效的,但是您可以通过用字符串数组替换
字符串来修改答案,只是为了清楚起见。@javanob我不太确定您得到的是什么。字符串数组,或者任何数组,都有实际的“[”和“]”字符。如果不使用字符串,我怎么可能提供我的示例呢?您可以这样定义一个字符串数组
string[]str={“20”、“30”、“40”};
@JavaNoob OK。然后如何删除“[”和“]”字符?