Newsgroup: it.comp.java
Titolo: stringhe

Esiste una qualche funzione che se gli passo il carattere che mi 
interessa ed un numero mi genera una stringa col carattere ripetuto n 
volte?
So che è facile farla, ma vorrei utilizzare tutto quella a disposizione 
dal sdk
-- 
Questa è una firma automatica di MesNews.
Sito: 
http://www.mesnews.net

 typed:
|| Esiste una qualche funzione che se gli passo il carattere che mi
|| interessa ed un numero mi genera una stringa col carattere ripetuto n
|| volte?
Non credo che gli sviluppatori java abbiano creato una funzione del
genere... :-|
|| So che č facile farla,
appunto č un banalissimo ciclo for
|| ma vorrei utilizzare tutto quella a
|| disposizione dal sdk
Credo che nel jdk siano presenti metodi ben piů utili, comunque in bocca al
lupo
Ciao,
eyes2ice

 
assurdo... ci avresti messo meno di quanto t'e' servito per inviare il 
tuo post...
public String getNTimesCharString(char c, int t)
{
   String ret ="";
   for (int i = 0; i < t ; i++)
	ret += "" + c;
   return ret;
}
-- 
             {2Nd+BESt}
-----------------------------------
never underestimate human stupidity

 
assurdo... ci avresti messo meno a farlo di quanto t'e' servito per 


 
assurdo... ci avresti messo meno a farlo di quanto t'e' servito per
inviare il
tuo post...
public String getNTimesCharString(char c, int t)
{
   String ret ="";
   for (int i = 0; i < t ; i++)
	ret +=  c;


 
assurdo... ci avresti messo meno a farlo di quanto t'e' servito per
inviare il
tuo post...
public String getNTimesCharString(char c, int t)
{
   String ret ="";
   for (int i = 0; i < t ; i++)
	ret += + c;


 }
1) Stasera mi annoio
2) Mi paice giocare a chi ce l'ha piu' lungo :)
  public StringBuffer ret(int n, char c) {
    if (n == 1) return new StringBuffer(""+c);
    StringBuffer s = new StringBuffer().append(ret(n/2, c));
    return s.append(s).append(n % 2 == 0 ? "" : ""+c);
  }
-- 
Giambo - Occhio al filtro antispam _e_ alla whitelist !

Giambo wrote:
public String ret(int n, char c) {
  char r[] = new char[n];
  for(int i=0; i<n; i++) {
   r[i] = c;
  }
  return new String(r);
}

Vincent Vega ha scritto:

e vabbe:
public static
    String
getNTimesChar
       (
   char _1,
int       _0)
       {
    return
  (_0    <=0
       ?
     "":""
       +
_1           +
getNTimesChar(
   _1,      _0
-1   )    )  ;}
pure ricorsiva.


Vincent Vega wrote:

Purtroppo questa versione deve iterare 'n' volte, mentre la mia log2(n).
Credo di averlo ancora piu' lungo io :)


 pure ricorsiva.
Peccato per la formattazione ... Credo che tu abbia vinto, comunque :)


Giambo ha scritto:
  > Peccato per la formattazione ...
ahn si?! guarda quuesto: 
http://www.ioccc.org/2001/anonymous.c
e a lui cosa diresti? ;) (pero' e' c/c++)


 Credo di averlo ancora piu' lungo io :)
Indubbiamente, però ci impiega circa il doppio. Provare per credere.
Il mio scopo era eleminare le concatenazioni di stringhe, sapendo che 
sono costose.

 pure ricorsiva.
E mostruosamente lenta. Oltre che limitata per la ricorsività.

 }
Se leggeste le mail prima di rispondere .....  in VB esiste questa 
funzione, mi chiedevo se c'è anche in Java


 sono costose.
Curiosita': L'implementazione di "Arrays.fill(char[] a, char val)"
procede linearmente (Come la tua "soluzione") o a colpi di raddoppio
(Come la mia) ?.


 funzione, mi chiedevo se c'è anche in Java
  char ch = 'x';
  char[] c = new char[42];
  Arrays.fill(c, ch);
  String s = new String(c);


 (Come la mia) ?.
Bisognerebbe provare, ma immagino sia ottimizzata.
Credo che comunque la soluzione più furba sia utilizzare correttamente 
lo StringBuffer, ovvero allocandolo subito della dimensione adeguata e 
operare le operazioni di append su di esso.

 e a lui cosa diresti? ;) (pero' e' c/c++)
Gli direi che vorrei avere TAAANTO tempo
da perdere come ha lui... ;)
Saluti
Roberto
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 e a lui cosa diresti? ;)
Che e' pazzo :D
Saluti
CarMas