Jestem nowy w Javie, chociaż miałem dobre doświadczenie w PHP i szukam idealnego zamiennika funkcji eksploduj i imploduj (dostępnych w PHP) w Javie.
Wyszukałem w Google to samo, ale nie jestem zadowolony z wyników. Każdy, kto znajdzie dobre rozwiązanie mojego problemu, zostanie doceniony.
Na przykład:
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));
Pożądane wyjście:
[x, y, z]
Odpowiedzi:
Javadoc dla String ujawnia, że
String.split()
jest to, czego szukasz w odniesieniu doexplode
.Java nie zawiera odpowiednika „implode” lub „join”. Zamiast włączać gigantyczną zależność zewnętrzną dla prostej funkcji, jak sugerują inne odpowiedzi, możesz po prostu napisać kilka wierszy kodu. Można to osiągnąć na wiele sposobów; używanie
StringBuilder
to jeden: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();
źródło
String#join
( dokumentację ). Na swoim przykładzie:String joined = String.join(" ", split);
. Metoda wykorzystujeStringJoiner
klasę.String.split()
może zapewnić zamiennikexplode()
Przez zastąpienie
implode()
Chciałbym porad można napisać zarówno funkcję niestandardową lub użyć Apache Commons „sStringUtils.join()
funkcje.źródło
Dobrą alternatywą są metody String.split i StringUtils.join.
Rozbij:
String[] exploded="Hello World".split(" ");
Implode:
String imploded=StringUtils.join(new String[] {"Hello", "World"}, " ");
Pamiętaj jednak, że StringUtils znajduje się w zewnętrznej bibliotece.
źródło
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)
jest tym, czego szukasz.źródło
Nie znam PHP, ale myślę, że String.split jest odpowiednikiem PHP w Javie
explode
. Jeśli chodzi oimplode
standardową bibliotekę, nie zapewnia takiej funkcjonalności. Po prostu iterujesz po swojej tablicy i tworzysz ciąg znaków za pomocą StringBuilder / StringBuffer . Możesz też wypróbować doskonałe Google Guava Splitter i Joiner lubsplit/join
metody z Apache Commons StringUtils .źródło
jeśli mówisz o odwołaniu do klasy String. więc możesz użyć
dla opcji Rozbij i użyj ciągu
dla Implode.
źródło
concate
nie jest równoważneimplode
.