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

    java: ricerca di una stringa all' interno di un file txt

    Scusate sapreste dirmi come faccio a ricercare una parola (o stringa, che dir si voglia) data in input all' interno di un file txt ?

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Devi caricare il file riga per riga in memoria e poi cercare dentro ciò la stringa che vuoi trovare.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    codice:
    File a = new File("file.txt");
    FileInputStream c = new FileInputStream(a);
    BufferedReader b = new BufferedReader(new InputStreamReader(b));
    while(b.readLine()!=null)
    {
           if(b.readLine().equals("//STRINGA DA CERCARE")
            {
               //QUALCOSA 
            }
    }
    Questo se il file è composto da linee di singole parole.

    Se invece il file è un normale testo scritto:

    codice:
    File a = new File("file.txt");
    Scanner b = new Scanner(a);
    String now=null;
    while((now=b.next())!=null)
    {
        if(now.equals("Stringa da cercare")
         {
              //FAI QUALCOSA
          }
    }
    Spero di esserti stato d'aiuto e di non aver fatto errori

  4. #4
    Si sei stato molto gentile, credo di aver capito, quindi volendo ricapitolare, per avere un maggior chiarimento ti mostro il mio caso: ho un file di testo txt dove c'è nome, cognome, annodi nascita ed un eventuale interesse, esempio:
    Paperone DePaperoni 1954 soldi

    il mio obiettivo è inserire in input l'interesse, che in questo caso sono i "soldi" e stampare nome, cognome e anno di nascita di coloro che hanno questo interesse, in questo caso, otterrò in output :
    Paperone DePaperoni 1954
    con il tuo codice (ti ringrazio ancora) riesco a far ciò ?

  5. #5
    Si, o almeno credo: quando trova la stringa esegue il corpo di comandi dopo l'if. Qunidi puoi scrivere qualcosa lì. Ad esempio fai stampare l'intera riga con b.readLine(). Vedi te come fare poi

  6. #6
    Sfruttando i tuoi suggerimenti e anche quelli del mio libro di testo ho buttato giu un codice che però in fase di scrittura mi da questo errore :
    codice:
    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    	at java.util.ArrayList.rangeCheck(Unknown Source)
    	at java.util.ArrayList.get(Unknown Source)
    	at AnalizzatoreDB.parolaChiave(AnalizzatoreDB.java:81)
    	at AnalizzatoreDB.main(AnalizzatoreDB.java:22)
    il codice in questione è un metodo che io ho chiamato parolaChiave, il quale viene eseguito nel main e il suo argomento è l'interesse che riceve in input
    quindi:

    parolaChiave(parolaChiave)

    il codice di questo metode è:
    codice:
    public static void parolaChiave(String parolaChiave)
    	{	
    		try(BufferedReader in = new BufferedReader(new FileReader("Database.txt")))
    		{
    				String stringa = in.readLine();
    				while(stringa != null)
    				{
    					ArrayList<String> searchInteresse = new ArrayList<String>();
    					String nome = searchInteresse.get(0);
    					String cognome = searchInteresse.get(1);
    					String annoNascita = searchInteresse.get(2);								
    					
    					if(searchInteresse.size()>3) 
    					{
    						String interesse = searchInteresse.get(3);
    						Utente x = new Utente(nome, cognome, annoNascita, searchInteresse);
    						utente.add(x);
    						if(interesse.equals(parolaChiave))
    							{System.out.println(nome + cognome +annoNascita);}
    					}
    				}
    		}
    		catch(IOException e)
    		{
    			System.out.println(" Eccezione\\s e");
    		}
    sapresti darmi una spiegazione dell' errore ?

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.