[ Au197/79 @ 15.10.2005. 15:01 ] @
Da li java ima neku join metodu koja će spojiti niz stringova u jedinstven string po nekom delimiteru kao što to postoji npr. u pythonu?

Nova java ima split metodu na stringu koja je inverzna metodi koju tražim.

[ smrz @ 15.10.2005. 21:33 ] @
Citat:
Au197/79: Da li java ima neku join metodu koja će spojiti niz stringova u jedinstven string po nekom delimiteru kao što to postoji npr. u pythonu?

Nova java ima split metodu na stringu koja je inverzna metodi koju tražim.


Java ima primitivan API za operacije nad Stringovima. Koristi jakarta commons-lang biblioteku. Evo onoga što tražiš.

http://jakarta.apache.org/comm...ils.html#join(java.lang.Object[], java.lang.String)
[ veljaradenkovic @ 15.10.2005. 21:34 ] @
Mislim da nema. String je 'immutable object' sto znaci da se njegovo stanje (data) ne moze menjati posle konstrukcije. Naravno uvek mozes da od String objekata iz niza kreiras novi string objekat. Ince implementacija takve funkcije je trivijalna.

Code:

public String joinStrings(String[] strArray)
    {
        StringBuilder sb = new StringBuilder();
        for(String element : strArray)
        {
            sb.append(element);
            //Opciono mozes da dodas i delimiter
            sb.append(',');
        }
        return sb.toString();
    }
[ Au197/79 @ 16.10.2005. 00:24 ] @
Hvala na odgovorima. Znam kako se izboriti sa nedostatkom join metode, ali nikako mi nije jasno kakav pametnjaković iz Sun-a uvodi split a inverzni join zaboravlja. Ova priručna rešenja su nezgodna jer ako imam niz stringova ["aa", "bb", "cc"] (py zapis) i hoću da ih spojim i dobijem "aa,bb,cc" treba da se piše kod da se ne dobije nešto tipa: ",aa,bb,cc" ili "aa,bb,cc,". Kako neke proste poput metode join stvari mogu da olakšaju život i prosto nisam mogao da poverujem kako te funkcionalnosti u mastodontu poput jave nema :(
[ veljaradenkovic @ 17.10.2005. 22:40 ] @
Citat:
Ova priručna rešenja su nezgodna jer ako imam niz stringova ["aa", "bb", "cc"] (py zapis) i hoću da ih spojim i dobijem "aa,bb,cc" treba da se piše kod da se ne dobije nešto tipa: ",aa,bb,cc" ili "aa,bb,cc,".


Cisto u svrhu dokumentacije da kazem da nije tesko da se ishendluje korektno postavljanje delimitera.

Code:

public String joinStrings(String[] strArray)
    {
        StringBuilder sb = new StringBuilder();
        int counter = 0; 
        for(String element : strArray)
        {
            sb.append(element);
            //Opciono mozes da dodas i delimiter
            if(counter != (strArray.length - 1))
                sb.append(',');
            counter++;
        }
        return sb.toString();
    }


Ili for petlja sa brojacem pa bez ovog counter.
[ NikolaVeber @ 18.10.2005. 12:41 ] @
Ili da se ustedi koji bit:

Code:

public String joinStrings(String[] strArray)
{
  StringBuilder sb = new StringBuilder();
  boolean prvi = true; 
  for(String element : strArray)
  {
    if(prvi)
      prvi = false;
    else
      sb.append(',');
    sb.append(element);
    //Opciono mozes da dodas i delimiter
    counter++;
  }
return sb.toString();
}

:)