You can use regular expressions for this purpose:
String str = "+420354599951 [table] +420354599969 [table] " +
"+420354599969 [fax] +420354599969 [mobile]";
String[] arr = Arrays.stream(str
// replace sequences (0 and more)
// of whitespace characters
// after closing square brackets
// with delimiter characters
.replaceAll("(])(\\s*)", "$1::::")
// split this string by
// delimiter characters
.split("::::", 0))
.toArray(String[]::new);
// output in a column
Arrays.stream(arr).forEach(System.out::println);
Output:
+420354599951 [table]
+420354599969 [table]
+420354599969 [fax]
+420354599969 [mobile]
See also: How to split a string delimited on if substring can be casted as an int