Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    41

    [Java]Problema con un System.out.println

    Ho scritto il seguente programma:

    public class LogFileOperations extends OpenLogFile{

    OpenLogFile File = new OpenLogFile();

    ArrayList ID = new ArrayList(1);

    public void ExamineString(String[] args) throws IOException{

    File.OpenFile(args);


    while((line!=null)){
    String z="-!-";
    String y = line.substring(6, 9);
    int j=y.compareTo(z);
    String b=" * ";
    int a=y.compareTo(b);
    String d="---";
    String c= line.substring(0, 3);
    int e=c.compareTo(d);

    if ((j!=0) && (a!=0) && (e!=0)){

    String Time=line.substring(0, 5);
    String UserID = line.substring(line.indexOf('<'), line.indexOf('>')+1);
    String Text = line.substring(line.indexOf('>')+2, line.length());

    if ((ID.isEmpty())) ID.add(UserID);

    else if (!ID.contains(UserID)) ID.add(UserID);



    }
    line = br.readLine();
    }
    System.out.println(ID.size());
    }

    }
    Ho un problema con il system.out.println che non mi visualizza. Se invece lo inserisco nel ciclo while stampa però in maniera ciclica.

    Qualcuno di voi sa come risolvere il problema.

    Grazie

  2. #2
    Ciao,

    per prima cosa ti consiglio di scrivere il codice negli appositi tag "code" e non tra quelli delle citazioni: diventa più leggibile (il codice viene indentato) per chi legge il tuo topic e cerca di aiutarti.
    Detto questo, mi sembra di aver capito che tu voglia stampare alla fine del ciclo la dimensione del tuo array (ID), giusto? tu dici che non ti stampa, ma sei sicuro che ci arriva al system.out e che nn ti dà qualche errore prima? fai una cosa, all'interno del system.out (che comunque prende in input una stringa, e non un int...) mettici un testo prima della "size()", qualcosa del tipo:

    codice:
    System.out.println("Dimesione ID = " + ID.size());
    e guarda se e cosa ti stampa. Poi facci sapere.
    S-RDZN

    J2EE programmer

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    41
    Ho notato che mi da un'eccezione alla riga

    codice:
    String y = line.substring(6, 9);
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 9
    at java.lang.String.substring(String.java:1935)
    at examinelogfile.LogFileOperations.ExamineString(Log FileOperations.java:39)
    at examinelogfile.Main.main(Main.java:27)

    Sapresti come risolvere il problema?

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Probabilmente in fondo al file leggi una riga con un numero di caratteri < 9 e quando accedi alla sotto stringa 6-9 ti da errore.

  5. #5
    Originariamente inviato da markg
    Ho notato che mi da un'eccezione alla riga

    codice:
    String y = line.substring(6, 9);
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 9
    at java.lang.String.substring(String.java:1935)
    at examinelogfile.LogFileOperations.ExamineString(Log FileOperations.java:39)
    at examinelogfile.Main.main(Main.java:27)

    Sapresti come risolvere il problema?

    Grazie
    Tu cerchi di fare il substring di "line": ti va bene quando il testo della riga è maggiore o uguale ai 10 caratteri (9 è la posizione, che, partendo da 0, corrisponde al 10° carattere della stringa); ma se la stringa è più corta di 10 caratteri, ovviamente ti genera una StringIndexOutOfBoundsException. Devi fare in modo quindi che quel substring sia dinamico, ovvero vada in base alla lunghezza della stringa "line".
    S-RDZN

    J2EE programmer

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    41
    Grazie per la risposta

    Saresti così gentile da dirmi come faccio a fare in modo che il substring vari con la lunghezza della stringa.

    Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    41
    Ho risolto era una riga bianga in fondo al file

    Grazie a tutti per la collaborazione

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.