// Written without an IDE! import java.util.*; import java.io.*; public class main { public static void main(String[] args) throws IOException { String s = readTextFile("input/main.java", ""); System.out.println(splitAtBrackets(s)); } static List splitAtBrackets(String s) { List list = new ArrayList(); int lastI = 0; for (int i = 0; i < s.length(); i++) { boolean a = i == 0 || "{}()[]".indexOf(s.charAt(i-1)) >= 0; boolean b = "{}()[]".indexOf(s.charAt(i)) >= 0; if (a || b) { // split if (lastI != i) list.add(s.substring(lastI, i)); lastI = i; } } if (s.length() > lastI) list.add(s.substring(lastI)); // done return list; } public static String readTextFile(String fileName, String defaultContents) throws IOException { if (!new java.io.File(fileName).exists()) return defaultContents; FileInputStream fileInputStream = new FileInputStream(fileName); InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); return loadTextFile(inputStreamReader); } public static String loadTextFile(Reader reader) throws IOException { StringBuilder builder = new StringBuilder(); try { BufferedReader bufferedReader = new BufferedReader(reader); String line; while ((line = bufferedReader.readLine()) != null) builder.append(line).append('\n'); } finally { reader.close(); } return builder.length() == 0 ? "" : builder.substring(0, builder.length()-1); } }