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

    Confrontare un parte di Stringa

    Ciao a tutti,
    dovrei leggere dei file in una directory, di cui conosco solo una parte del nome (in pratica è una specie di codice numerico che non segue una sequenza precisa) . Avevo pensato di farmi fare una lista dei file della directory e poi confrontare ogni volta la stringa in questione (cioè il nome del mio file) per vedere se contiene il mio codice e in tal caso leggere il file.
    Come posso effettuare questo tipo di confronto? Con equals o compareTo posso solo vedere se sono identiche due stringhe oppure no, ma in questo caso? Grazie a tutti coloro che vorranno rispondere.

  2. #2

    metodo contains

    come la vedi questa?

    http://java.sun.com/j2se/1.5.0/docs/....html#contains(java.lang.CharSequence)

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Confrontare un parte di Stringa

    Originariamente inviato da I_love_Italy
    dovrei leggere dei file in una directory, di cui conosco solo una parte del nome (in pratica è una specie di codice numerico che non segue una sequenza precisa)
    Per ottenere la lista dei file in una directory si usa list() o listFiles() di java.io.File. Nel tuo caso potresti usare uno dei due metodi che supporta un apposito "filter" in modo da filtrare solo i file che ti interessano.

    Per il filtro vero e proprio, dipende da quali devono essere i criteri di filtro (spiega quali sono e magari fai degli esempi di nomi). Puoi andare tu ad estrarre/verificare i singoli caratteri o sottoparti del nome per vedere se è quello che ti interessa oppure puoi usare una apposita espressione regolare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4

    Re: metodo contains

    Originariamente inviato da lucke84
    come la vedi questa?

    http://java.sun.com/j2se/1.5.0/docs/....html#contains(java.lang.CharSequence)
    credo che possa andare bene, magari quando la provo se ci sono problemi vi faccio sapere, grazie.

  5. #5
    Come immaginavo non mi funziona...

    Ho provato a scrivere il seguente codice ma non trova la sottostringa che mi interessa (ho controllato col debug di eclipse e non arriva mai al primo if)

    codice:
    String[] ID = ObjectTable.getObjectID();
    
    File dir=new File("/Documents and Settings/prova/");
    String [] elenco=dir.list();
    
    		
    for(int i=0;i<elenco.length;i++){
    	for (int j=0;j<ID.length;j++){
    		if (elenco[i].contains(ID[j])) {
    			StringBuilder filename = new StringBuilder(dir+elenco[i]);
    			File file=new File(filename.toString());
    				if (file.exists()){
                                      eccetera eccetera                                                                      
                                         }

    In pratica il mio file ha una struttura del tipo "nome.IDnumeroacaso.txt". Purtroppo questo numero a caso che spunta dopo il mio ID non lo posso conoscere sempre, il nome invece è uguale per tutti i file della stessa directory. Sapete darmi qualche altra indicazione? Sono un pò alle prime armi.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da I_love_Italy
    Ho provato a scrivere il seguente codice ma non trova la sottostringa che mi interessa (ho controllato col debug di eclipse e non arriva mai al primo if)
    Cioè non entra mai nel corpo del primo 'if'??

    Tecnicamente la prima parte mi sembra corretta. Quell'uso di StringBuilder, oltre ad essere superfluo, non è molto bello. Visto che elenco[i] contiene solamente il nome della entry, senza alcun path o / \, se devi ottenere un File il modo più semplice è:

    File file = new File (dir, elenco[i]);

    Non serve alcun concatenamento esplicito o StringBuilder!!

    Per il fatto che non entra nel primo if ... non saprei. Bisognerebbe vedere meglio il resto. La directory è corretta? Quell'array di stringhe ID è corretto? Cioè immagino che debba contenere gli ID da cercare, giusto?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Originariamente inviato da andbin
    Cioè non entra mai nel corpo del primo 'if'??

    Tecnicamente la prima parte mi sembra corretta. Quell'uso di StringBuilder, oltre ad essere superfluo, non è molto bello. Visto che elenco[i] contiene solamente il nome della entry, senza alcun path o / \, se devi ottenere un File il modo più semplice è:

    File file = new File (dir, elenco[i]);

    Non serve alcun concatenamento esplicito o StringBuilder!!

    Per il fatto che non entra nel primo if ... non saprei. Bisognerebbe vedere meglio il resto. La directory è corretta? Quell'array di stringhe ID è corretto? Cioè immagino che debba contenere gli ID da cercare, giusto?

    Non so bene cosa ho modificato ma adesso sembra funzionare, infatti esegue i calcoli che seguono l'if. Grazie mille anche per i suggerimenti su StringBuilder.

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.