Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    ricerca di spazi in una stringa

    Ciao ragazzi,
    eccomi di nuovo qui a chiedervi una manina.
    devo ricercare in una stringa il numero di spazi seguiti da vocale.

    public class Spazi {

    public static void main(String[] args) {

    String s;
    int n = 0; //contatore

    s = Input.readString("Inserisci una frase: ");

    for ( int i = 0; i < s.length(); i++) {

    if (s.charAt(i) == ' ' + (s.charAt(i) == 'a' || s.charAt(i) == 'e' || s.charAt(i) == 'i' || s.charAt(i) == 'o' || s.charAt(i) == 'u')) {

    n++;
    }
    }
    System.out.println("Gli spazi seguiti da vocale sono:" + n);
    }
    }



    Ovviamente quando compilo mi dà l'errore "operator + cannot be applied to char,boolean" nell'if.
    In quale altro modo posso dirgli "spazio seguito da vocale"?

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Hai mai sentito parlare delle espressioni regolari?
    Premetto che io non ho molta dimistichezza con esse ma un esempio che sembra andar bene può essere questo:



    codice:
    ...
    String s;
    int n = 0; //contatore
    
    s = Input.readString("Inserisci una frase: ");
    
    for ( int i = 0; i < s.length() - 1; i++) {
    if ((s.substring(i, i+2)).matches (" [aeiou]")) {
    n++;
    }
    }
    System.out.println("Gli spazi seguiti da vocale sono:" + n);
    ...

    Probabilmente tramite espressioni regolari ci sarà un modo molto più pulito ed elegante per farlo ma ti ripeto la mia conoscenza del mondo delle espressioni regolari è minima


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Bhe, ragiona su quanto hai scritto.
    In primis quel + nell'if non ha senso. Come seconda cosa, se i contiene lo spazio... come può contenere anche la vocale?

    Se sta imparando può anche evitare le espressioni regolari.

  4. #4
    public class es3 { //spazi seguiti da vocali

    public static void main(String[] args) {


    String s;
    int n = 0; //contatore


    s = Input.readString("Inserisci una frase: ");

    for ( int i = 0; i < s.length(); i++) {
    if (s.charAt(i) == ' ' && (s.charAt(i+1) == 'a' || s.charAt(i+1) == 'e' || s.charAt(i+1) == 'i' || s.charAt(i+1) == 'o' || s.charAt(i+1) == 'u')) {
    n++;
    }
    }
    System.out.println("Gli spazi seguiti da vocale sono:" + n);
    }
    }




    Adesso funziona! Grazie!! ;-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.