Пожалуйста, не используйте StringTokenizer класс, так как он является устаревшим классом, который сохраняется по соображениям совместимости, и его использование не рекомендуется в новом коде.И мы можем использовать метод разделения, как это было предложено другими.
String[] sampleTokens = "004-034556".split("-");
System.out.println(Arrays.toString(sampleTokens));
И, как ожидается, он выведет:
[004, 034556]
В этом ответе я также хочу указать одно изменение, которое произошло для метода split
в Java 8 .Метод String # split () использует Pattern.split
, и теперь он удалит пустые строки в начале массива результатов.Обратите внимание на это изменение в документации по Java 8:
Когда в начале входной последовательности есть совпадение положительной ширины, тогда пустая ведущая подстрока включается в началорезультирующий массив.Однако совпадение нулевой ширины в начале никогда не приводит к появлению такой пустой ведущей подстроки.
Это означает, что для следующего примера:
String[] sampleTokensAgain = "004".split("");
System.out.println(Arrays.toString(sampleTokensAgain));
мы получим три строки: [0, 0, 4]
а не четыре, как было в Java 7 и раньше.Также проверьте этот похожий вопрос .