Вероятно, это можно было бы взломать, но он не был создан для этих целей.
Подобные задачи могут решаться с помощью регулярных выражений и быть гораздо более эффективными и выразительными.
Первый пример можно упростить до следующего
String regex = "^(\\d{3})(\\d{2})(\\d{4})$";
String input = 123456789L + "";
System.out.println(input.replaceAll(regex, "$1-$2-$3")); // 123-45-6789
Второй к следующему
String regex = "^(\\d{3})(\\d{3})(\\d{4})$";
String input = 1234567890L + "";
System.out.println(input.replaceAll(regex, "($1)$2-$3")); // (123)456-7890
И так далее ...