Я новичок в Java, хотя у меня был хороший опыт работы с PHP, и я ищу идеальную замену для функций explode и implode (доступных в PHP) в Java.
Я искал то же самое в Google, но не доволен результатами. Мы будем признательны за любое хорошее решение моей проблемы.
Например:
String s = "x,y,z";
//Here I need a function to divide the string into an array based on a character.
array a = javaExplode(',', s); //What is javaExplode?
System.out.println(Arrays.toString(a));
Желаемый результат:
[x, y, z]
Ответы:
Документ Javadoc для String показывает, что
String.split()
это именно то, что вы ищетеexplode
.Java не включает эквивалент «взрыва» или «соединения». Вместо того, чтобы включать гигантскую внешнюю зависимость для простой функции, как предлагают другие ответы, вы можете просто написать пару строк кода. Есть несколько способов добиться этого; использование a
StringBuilder
равно одному:String foo = "This,that,other"; String[] split = foo.split(","); StringBuilder sb = new StringBuilder(); for (int i = 0; i < split.length; i++) { sb.append(split[i]); if (i != split.length - 1) { sb.append(" "); } } String joined = sb.toString();
источник
String#join
( документация ). Для примера:String joined = String.join(" ", split);
. Метод используетStringJoiner
класс.String.split()
может предоставить вам заменуexplode()
Для замены
implode()
я бы посоветовал вам написать либо пользовательскую функцию или использование Apache Commons «ыStringUtils.join()
функции.источник
Хорошие альтернативы - методы String.split и StringUtils.join.
Взорваться:
String[] exploded="Hello World".split(" ");
Взрыв:
String imploded=StringUtils.join(new String[] {"Hello", "World"}, " ");
Имейте в виду, что StringUtils находится во внешней библиотеке.
источник
packages such as sun., that are outside of the Java platform, can be different across OS platforms (Solaris, Windows, Linux, Macintosh, etc.) and can change at any time without notice with SDK versions
java.lang.String.split(String regex)
это то, что вы ищете.источник
Я не знаком с PHP, но думаю, что String.split - это Java-эквивалент PHP
explode
. Что касаетсяimplode
стандартной библиотеки, то такой функциональности нет. Вы просто перебираете свой массив и строите строку с помощью StringBuilder / StringBuffer . Или вы можете попробовать отличный Google Guava Splitter and Joiner илиsplit/join
методы из Apache Commons StringUtils .источник
если вы говорите в ссылке на String Class. так что вы можете использовать
для взрыва и использования строки
для Implode.
источник
concate
не эквивалентноimplode
.