If you split your string with ),( you will not remove ( from start and ) at end of your string. Consider using Pattern and Matcher classes to find elements between ( ).
String text = "(1,0,quote),(1,0,place),(1,0,hall),(2,0,wall)";
Pattern p = Pattern.compile("\\(([^)]+)\\)");
Matcher m = p.matcher(text);
while(m.find()) {
System.out.println(m.group(1));
}
Output:
1,0,quote
1,0,place
1,0,hall
2,0,wall
If you really want to use split on ),( you will need to manually remove first ( and last ) (splitting will only remove part that should be split on). Also you will have to escape parenthesis ) ( because they are regex metacharacter (for example used to create groups). To do this you can manually add \\ before each of ) and (, or you can surround ),( with \\Q and \\E to mark characters between these elements as literals. BUT you don't have to do this manually. Just use Pattern.quote to produce regex with escaped all metacharacters and use it as split argument like
//I assume that `text` already removed `(` and `)` from its start and end
String[] array = text.split(Pattern.quote("),("));
()s. Or use a real serialization that already solves this problem: JSON.),(like you said?