![]()
qualcuno puo brevemente spiegarmi come fare questo programma:
- data una frase dire quante parole essa contiene
naturalmente con gli array di caratteri.. grazie mille!! =)
![]()
qualcuno puo brevemente spiegarmi come fare questo programma:
- data una frase dire quante parole essa contiene
naturalmente con gli array di caratteri.. grazie mille!! =)
La via più rapida: splitti attorno a tutto quello che non è un carattere a-zA-Z, con l'apposito metodo split di String che ti ritorna appunto un array di String. Non ti resta che ritornare length di tale array.
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
splitti?
io sono alle prime armi con gli array.. a scuola li abbiamo iniziati da 1-2 mesi..
avevo pensato ad una soluzione, ma non saprei..
se frase[i]==" "
CIOE':
se il carattere è uguale a spazio aumenta il contatore di 1
però poi non saprei come fare quando supera l'ultimo carattere.. come fermare il ciclo..
anche il tuo metodo va bene... il ciclo lo fai da 0 a stringa.length-1
il trim serve a togliere eventuali spazi all'inizio e alla fine della frase.codice:public int contaParole(String str) { str = str.trim(); int parole = 1; for (int i = 0; i < str.length()-1; i++) { parole += (str.substring(i, i+1).equals(" ") ? 1 : 0); } return parole; }
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
Se hai un array di char ti basta usare un ciclo for, così:Originariamente inviato da Buzzz
però poi non saprei come fare quando supera l'ultimo carattere.. come fermare il ciclo..
Dovrebbe funzionare.codice:int num = 0; char[] array = "Questo è solo un esempio".toCharString(); for (int i = 0; i < array.length - 1; i++) if (array[i] != ' ') num++;
EDIT:
Sono stato preceduto.![]()
fatto bene a postare lo stesso: la tua è un'altra possibilità ancora, passando per i char.
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
Grazie ad entrambi!
PS: devo ancora provare il codice, ma se metto array.length - 1 l'ultima parola me la conta? perchè ho visto che poi hai messo num=0..
![]()
La tua osservazione dovrebbe essere corretta, ma onestamente non avendolo provato mi era sfuggito.Originariamente inviato da Buzzz
PS: devo ancora provare il codice, ma se metto array.length - 1 l'ultima parola me la conta? perchè ho visto che poi hai messo num=0..
Se sei sicuro che la tua frase è nel formato
"parola<spazio>parola..........<spazio>parola"
alla fine devi sommare 1 al contatore delle parole.
Non credo ti sia richiesto (mi sembra sia una specie di compito), ma tieni presente che nella realtà dovresti considerare anche i casi particolari. Ad esempio, se la frase comincia oppure termina con uno spazio, oppure se sono presenti più spazi consecutivi
scusate l'insistenza.. ma non mi è chiara una cosa..
faccio
frase=Integer.parseInt(JOptionPane.showInputDialog ("inserisci frase"));
ora dentro a frase ad esmepio ho: questa è la frase
ora mi chiedo, dentro alla variabile di tipo char "frase" cè: questa è la frase
non so come spiegarlo.. in pratica se voglio riempire 5 spazi di un array devo prendere in ingresso 5 numeri per esempio.. se invece inserisco un solo numero in pratica riempio una variabile intera.. lo stesso è qui.. in questo caso come fa a contare carattere per carattere se inserisco tutta la frase in una variabile..
se non si capisce (probabile) chiedete pure =)