Ось помилка:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 3
], [
^
at java.util.regex.Pattern.error(Pattern.java:1924)
at java.util.regex.Pattern.clazz(Pattern.java:2493)
at java.util.regex.Pattern.sequence(Pattern.java:2030)
at java.util.regex.Pattern.expr(Pattern.java:1964)
at java.util.regex.Pattern.compile(Pattern.java:1665)
at java.util.regex.Pattern.<init>(Pattern.java:1337)
at java.util.regex.Pattern.compile(Pattern.java:1022)
at java.lang.String.split(String.java:2313)
at java.lang.String.split(String.java:2355)
at testJunior2013.J2.main(J2.java:31)
Це область коду, яка викликає проблеми.
String[][] split = new String[1][rows];
split[0] = (Arrays.deepToString(array2d)).split("], ["); //split at the end of an array row
Що означає ця помилка і що потрібно зробити, щоб виправити код вище?
Відповіді:
29 для відповіді № 1String#split
працює з Регулярне вираження але [
(і ]
) не є стандартними символами, "вираженими виразками". Отже, вони повинні бути врятувався - використання [
(і ]
)
Однак в а Java String
, теж не є стандартним символом, і це повинно бути втекли також.
Таким чином, просто розділитись на [
, Java String
використаний є "\["
; і ви намагаєтесь отримати:
.split("\], \[")
Однак у цьому випадку ви «не просто семантично уникаючи кількох конкретних символів у регулярному виразі, але насправді цього бажаючи весь ваш зразок трактується буквально: є метод зробити саме це