2013-03-20 8 views
7

Come creare un array chiamando il contructor di args?Come creare una matrice di StringBuilder inizializzata con ""?

StringBuilder[] sb=new StringBuilder[100]; 

Ma se controllo sb [0] è nullo. Voglio che sb [0] to sb [99] inizializzato con "".

seguenti risultati in un errore:

StringBuilder[] sb=new StringBuilder[100](""); 

EDIT: o devo fare questo:

for(StringBuilder it:sb) 
{ 
    it=new StringBuilder(""); 
} 
+5

Dovrai scrivere un ciclo. – NPE

+1

o solo per divertimento: 'StringBuilder [] sb = new StringBuilder [] {" "," ".... 100}'; – PermGenError

+1

@TheCrazyProgrammer La modifica apportata non funzionerà come si assegnerebbe il valore per 'it' che non si rifletterà nell'array. Ci sono 3 risposte quasi identiche che ti spiegano cosa fare – Edd

risposta

10

Tutto ciò che il codice farà è inizializzare un array pronto per 100 StringBuilder. In realtà non lo popolerà.

Si potrebbe fare questo:

StringBuilder[] sb=new StringBuilder[100]; 

for (int i = 0; i < sb.length; i++) { 
    sb[i] = new StringBuilder(""); 
} 

Questo dovrebbe farlo per voi.

+2

o 'sb [i] = new StringBuilder();' – assylias

+0

@Craig: ho capito perché non usare per-ciascuno. – TheCrazyProgrammer

+0

@all: molte persone qui stanno eliminando i loro commenti. Una volta che si rendono conto di aver torto: D – TheCrazyProgrammer

2

Sarà sempre null. Devi inizializzarlo manualmente se vuoi "" lì.

Invece è possibile accedere all'array mediante un metodo che restituisce "" se il valore è null.

+0

Che non funziona più ... – assylias

+0

questo non funzionerà ... java è effettivamente passato per riferimento – Edd

+0

argh .. hai ragione. – Kai

1
StringBuilder[] sb = new StringBuilder[100]; 
for(int i=0;i<100;i++) { 
    sb[i] = new StringBuilder(""); 
} 
+0

@Andreas_D. La risposta è stata modificata dopo il tuo commento o questa era la risposta originale? Se originale, allora perché non si compilerebbe? –

+0

@RohitJain Ho modificato la risposta. Ho dimenticato di creare l'oggetto. –

+0

Rohit, il commento era * prima * della correzione. * Ora * compila. –

1

Tutti i valori in qualsiasi array sono null meno che non siano impostate ... è necessario inizializzare ogni valore manualmente

StringBuilder[] sb=new StringBuilder[100]; 
for(int i=0; i<sb.length; i++) { 
    sb[i]=new StringBuilder(); 
} 

o ...

StringBuilder[] sb=new StringBuilder[]{new StringBuilder(), new StringBuilder(), etc} 

(vi consiglio il primo metodo per un array con molte voci)

Problemi correlati