サンプルコード
public static List<String> deconstruct(String text) {
BreakIterator it = BreakIterator.getCharacterInstance();
it.setText(text);
List<String> clusters = new ArrayList<>();
int prev = 0;
while (it.next() != BreakIterator.DONE) {
clusters.add(text.substring(prev, it.current()));
prev = it.current();
}
return clusters;
}