Проблема с вашим текущим подходом в том, что вы пытаетесь разделить на сами числа. Это не даст желаемого результата, потому что то, что вы разделяете, получает потребляется (читай: удалено), оставляя все остальное позади. Вместо этого попробуйте разделить на [^1-4]+
:
String input = "1 3 2 1 9 1 bla 3 4 3";
String[] parts = input.split("[^1-4]+");
System.out.println(Arrays.toString(parts));
Это напечатает:
[1, 3, 2, 1, 1, 3, 4, 3]
Это будет разделено на один или несколько символов, отличных от 1-4. Это работает для вашей входной строки, потому что пробел является разделителем, а также несоответствующие цифры и слова должны быть удалены.