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

    Ricerca parola in una stringa

    Ciao ragazzi ho un problema con questo codice:
    [CODE]

    public static void main(String[] args) {

    String stringa = "In questa frase è contenuta la parola Java?";
    String sottostringa = "parola";

    // al momento non è stata effettuata alcuna ricerca
    // ne conseguito alcun risultato
    boolean cerca = false;

    // calcoliamo lunghezza di stringa e sottostringa
    // la differenza sarà condizione di terminazione per il ciclo for
    int max = stringa.length() - sottostringa.length();

    // ricerchiamo la sottostringa ciclando il contenuto di quest'ultima
    test:
    for (int i = 0; i <= max; i++) {
    int n = sottostringa.length();
    int j = i;
    int k = 0;
    while (n-- != 0) {
    if (stringa.charAt(j++) != sottostringa.charAt(k++)) {
    continue test;
    }
    }

    // a questo punto è stata effettuata una ricerca
    // sarà possibile produrre un output
    cerca = true;
    System.out.println("Parola: " + sottostringa);
    break test;
    }

    // stampiamo l'output sulla base dell'esito della ricerca
    System.out.println(cerca ? "Tovata" : "Non Trovata");
    [CODE]

    Il codice funziona. Il problema che se scrivo Parola mi dice, giustamente, parola non trovata.... Esiste un metodo affinchè posso trovare una parola anche se la scrivo con la lettera maiuscola? Vi ringrazio anticipatamente


  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: Ricerca parola in una stringa

    Originariamente inviato da crisannik
    Ciao ragazzi ho un problema con questo codice:
    [CODE]

    public static void main(String[] args) {

    String stringa = "In questa frase è contenuta la parola Java?";
    String sottostringa = "parola";

    // al momento non è stata effettuata alcuna ricerca
    // ne conseguito alcun risultato
    boolean cerca = false;

    // calcoliamo lunghezza di stringa e sottostringa
    // la differenza sarà condizione di terminazione per il ciclo for
    int max = stringa.length() - sottostringa.length();

    // ricerchiamo la sottostringa ciclando il contenuto di quest'ultima
    test:
    for (int i = 0; i <= max; i++) {
    int n = sottostringa.length();
    int j = i;
    int k = 0;
    while (n-- != 0) {
    if (stringa.charAt(j++) != sottostringa.charAt(k++)) {
    continue test;
    }
    }

    // a questo punto è stata effettuata una ricerca
    // sarà possibile produrre un output
    cerca = true;
    System.out.println("Parola: " + sottostringa);
    break test;
    }

    // stampiamo l'output sulla base dell'esito della ricerca
    System.out.println(cerca ? "Tovata" : "Non Trovata");
    [CODE]

    Il codice funziona. Il problema che se scrivo Parola mi dice, giustamente, parola non trovata.... Esiste un metodo affinchè posso trovare una parola anche se la scrivo con la lettera maiuscola? Vi ringrazio anticipatamente

    Per i test sui caratteri c'è il metodo toUpperCase di Character, mentre per le stringhe equalsIgnoreCase di String.

  3. #3
    Grazie Kaamos sei stato di grande aiuto...

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.