Pages: [1]   Go Down
Print
Author Topic: Array di String  (Read 1019 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Zallak
Matricola
*
Offline Offline

Posts: 72


« on: 25-11-2012, 18:03:52 »

Dato un array di stringhe restituire un array di char contenente il primo e l'ultimo carattere di ogni stringa ed una stringa s contenente la concatenazione di tutti i caratteri iniziali delle stringhe.

Code:
public class ArrayS1
{
public static void main(String[] args)
{
String[] a = {"pane", "piero", "alogeno", "carruba", "torneo", "dungeon", "verde", "cannella", "psilocibina", "Lovecraft"};   
char[] b = new char [20];
int ia = 0, ib = 0;

for (ia = 0; ia < a.length; ia++)
{
b[ib++] = a[ia].charAt(0);
b[ib++] = a[ia].charAt(a[ia].length() - 1);


}

for (ib = 0; ib < b.length; ib++)
{
System.out.print(b[ib]);
}

String s = new String();

for (ib = 0; ib < b.length; ib = ib + 2)
{
s += b[ib];
}

System.out.println();
System.out.println(s);
}
}

Domanda: se avessi voluto inizializzare l'array di stringhe in modo randomico come avrei potuto fare?  pc
Logged
Ciadamidaro Davide
Matricola
*
Offline Offline

Posts: 34


« Reply #1 on: 25-11-2012, 19:31:28 »

ti basta fare il casting in char di un intero generato random.
comunque la variabile ib e superflua, infatti quando generi il vettore b ia e ib hanno sempre gli stessi valori, e per generare la stringa di iniziali e più semplice scrivere
Code:
for (ib = 0; ib < a.length; ib = ib++)
{
s += a[ib].charAt(0);
}
Logged
Zallak
Matricola
*
Offline Offline

Posts: 72


« Reply #2 on: 27-11-2012, 20:53:01 »

Uhm ma nel primo ciclo for (quello che inizializza b[] per intenderci) ib viene incrementata due volte ad ogni incremento di ia perchè deve mettere uno dopo l'altro due caratteri per ogni stringa puntata da ia (il primo e l'ultimo) come faccio ad eliminarlo?
Grazie dei consigli sulla stringa cmq  ok correggo..
Logged
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #3 on: 28-11-2012, 00:25:23 »

Uhm ma nel primo ciclo for (quello che inizializza b[] per intenderci) ib viene incrementata due volte ad ogni incremento di ia perchè deve mettere uno dopo l'altro due caratteri per ogni stringa puntata da ia (il primo e l'ultimo) come faccio ad eliminarlo?
Grazie dei consigli sulla stringa cmq  ok correggo..

Ti basta una semplice moltiplicazione...

Code:
for (ia = 0; ia < a.length; ia++)
{
b[ia*2] = a[ia].charAt(0);
b[ia*2+1] = a[ia].charAt(a[ia].length() - 1);


}
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
Ciadamidaro Davide
Matricola
*
Offline Offline

Posts: 34


« Reply #4 on: 28-11-2012, 05:25:31 »

Uhm ma nel primo ciclo for (quello che inizializza b[] per intenderci) ib viene incrementata due volte ad ogni incremento di ia perchè deve mettere uno dopo l'altro due caratteri per ogni stringa puntata da ia (il primo e l'ultimo) come faccio ad eliminarlo?
Grazie dei consigli sulla stringa cmq  ok correggo..
non avevo fatto caso che b lo hai inizializzato come char, io ho fatto direttamento come stringa e perciò ho caricato le due lettere contemporaneamente^^
Logged
Pages: [1]   Go Up
Print
Jump to: