我正在尝试将数组写入文本文件,并且在此过程中我注意到数组是以以下格式编写的:[1, 1, 2, 2]
(int数组的示例)并且我想要转换为数组,以上面的int数组为例,将其转换为字符串并从中删除[
和,
。我怎么能去做呢,我已经尝试过寻找我能写的字符串模式但没有运气,我也尝试过写作:
char [] PIN = System.console().readPassword();
String pin = java.util.Arrays.toString(PIN);
String WriteToF = pin.replaceAll("[", "");
但收到以下错误:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed char
acter class near index 0
[
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.clazz(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
方面,[
在Java中被归类为什么类型的角色?
答案 0 :(得分:2)
String#replaceAll
方法替换使用正则表达式。如果要替换文字[
字符,则应使用String#replace
方法:
String WriteToF = pin.replace("[", "");
在正则表达式中,[
字符标记了字符类的开头。您需要使用]
关闭字符类才能使其成为有效的正则表达式语法。如果您想用正则表达式替换文字 [
字符,则可以将其转义:"\\[
“。
答案 1 :(得分:0)
在正则表达式中,[
被视为特殊的元字符(字符类的开头)。要匹配文字[
,您需要在将[
符号传递给replaceAll
函数时将其转义。
String WriteToF = pin.replaceAll("\\[", "");
当正则表达式引擎看到[
字符时,它会将其视为字符类的开头。如果打开了一个字符类,则必须使用]
关闭它( ]
表示字符类的结尾。)。
这样只有你得到以下错误。
Unclosed character class near index 0
答案 2 :(得分:0)
replaceAll("\\[", "")
代替。[
代表Character类的初学者,在字面上匹配[
时需要进行转义。