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

    [java] riconoscere una parola specifica all'interno di una stringa data da tastiera

    Ciao

    spero che qualcuno di voi possa darmi una mano a chiarire un mio dubbio. Il programmino che voglio sviluppare prende in ingresso i caratteri digitati da tastiera e li analizza.
    - nel main chiamo la funzione read che confronta l'input con una stringa predefinita;
    - il confronto viene eseguito tramite la funzione match() che ritorna un booleano e ha in ingresso le due stringhe da comparare
    - la stringa in ingresso viene prelevata dalla funzione readLine(), definita in un'altra classe.

    Il codice non da errori e legge gli input da tastiera, l'unico problema è che non riesco a fare il confronto, cioè, se scrivo:

    jkhvldkzhvflkdbglkdCIAOlknbv

    vorrei che il codice facendomi il confronto man mano che inserisco input, e quando trova la parola ciao mi dica che la parola è stata trovata.. chi mi aiuta?

    qua vi posto i due codici:

    codice:
    import java.io.*;
    import static java.lang.System.in;
    import java.lang.*;
    
    
    public class Ex {
    
      
    
    
    public static boolean match(TestRead str,String stringa) throws IOException {
    
         if(str.equals(stringa))
           { return true;  }
         else return false;
    
    }
    
    
    static final int A=0, B=1;
    
    
    
    public static int read() throws IOException {
    
        String line="";
        TestRead in = new TestRead();
        in.ReadLine();
    
        if(match(in,"ciao")) return A;
        else return B;
    
      }
    
    
    
     
    public static void main(String[] args) throws IOException {
    
    
    int ch;
         ch = read();
    if(ch==A){ System.out.println("ciao"); }
    else { System.out.println("niente");  }
    
       }
      
    
    } // End of class
    
    
    
    
    
    // classe ausiliare
    
    import java.io.*;
    import static java.lang.System.in;
    import java.lang.*;
    
    
    public class TestRead {
    
    
    String ReadLine() throws IOException {
    
        BufferedReader reader= new BufferedReader(new InputStreamReader(System.in));
        String linea= reader.readLine();
         do{ 
          return linea;
         }while(linea!=null);
        
      }
    
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Ma sicuro funzioni il confronto? Secondo me, no...

    Comunque, se confronti tutta la stringa che immetti con "ciao", ed all'interno della stringa c'è "ciao", di sicuro non verrà trovata (non in questo modo).

  3. #3
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Mhh diciamo che ci sono un pò di cose da rivedere.. comunque:

    il primo consiglio (non obbligatorio, ma ti aiuterà comunque (se non altro a crescere xD)) è quello di utilizzare Scanner per leggere i dati di input, lo trovi nella java.util

    Il modo migliore per risolvere il tuo problema è quello di ricorrere ai metodi della classe String.. ti consiglio di guardare la documentazione per trovare un sacco di metodi utili, comunque il metodo che serve a te è indexOf(String str).. dovresti usarlo in questo modo:

    if (datiinseriti.indexOf("ciao") > -1) {
    la stringa contiene la parola ciao
    } else {
    non c'è "ciao"
    }

    in poche parole questa funzione restituisce -1 se non trova la parola "ciao", altrimenti restituisce la posizione del primo "ciao" che trova

    spero di esserti stato utile almeno un pò!

  4. #4
    La pratica dice appunto di non utilizzare scanner ma di risolvere il problema in un altro modo

    Comunque ora provo ad utilizzare IndexOf, e vediamo, grazie mille intanto!!

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.