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

    Leggere caratteri uno alla volta sino alla fine della riga

    Ciao a tutti!

    Ho letto le molte discussioni simili ma non riesco ancora a far leggere una riga carattere per carattere fino al raggiungimento di eol. Mi devo attenere per la lettura al metodo readChar(). Ecco il mio codice:

    Codice PHP:
    String eol System.getProperty("line.separator"); 
    String tmp;
    while(
    true){
        while((
    readChar()) != '\n'){
            
    tmp "";
            if(
    tmp == eol){
                break;
            }
    ...

    public static 
    char readChar() {
      return 
    charAfterWhiteSpace();
    }

    private static 
    char charAfterWhiteSpace() {
      
    char c;
      do 
    read(); while (done && <= ' ');
      return 
    c;

    Dove sbaglio? Come risolvo?

    Grazie!

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

    Re: Leggere caratteri uno alla volta sino alla fine della riga

    Originariamente inviato da fabbio86
    non riesco ancora a far leggere una riga carattere per carattere fino al raggiungimento di eol.
    Questo che devi fare è forse un "esercizio didattico" in cui ti è stato esplicitamente richiesto di non usare classi specifiche/particolari e quindi devi gestire tu tutta la "logica" di lettura delle righe??

    Perché se è un esercizio, allora è un conto. Ma il tuo codice comunque è molto sbagliato (es. confronti stringhe con ==) nonché poco incapsulato (usi metodi statici ... così tanto per fare) e comunque non si capisce da dove leggi .... si vede una read() ma ... cosa è??? Quali classi di I/O devi poter usare?

    Se invece non è un esercizio, allora usa BufferedReader, che ha già un comodo readLine().

    In ogni caso, spiega meglio perché non è chiaro cosa devi fare di preciso e cosa devi poter utilizzare a livello di classi/metodi del framework.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Hai ragione, ho dimenticato di postare read. Sono obbligato a usare readChar così come è definita, ma se hai un'idea migliore per leggere un carattere la ascolto volentieri. C'è sempre da imparare.

    Codice PHP:

    private static final char eofChar '\u0005';  // ctrl E
    private static InputStream in;
    private static 
    LinkedList inputStackbufferStack;
    private static 
    boolean done// true if recent operation was successful
    private static char buf;     // last read character
    private static char[] LS;    // line separator (eol)

    public static char read() {
      
    char c;
      if (
    buf != empty) {
        
    buf;
        if (
    buf != eofbuf = empty;
      } else {
        try {
          
    = (char)in.read();
        } catch (
    IOException e) {
          
    done false;
          
    eofbuf eof;
        }
      }
      if (
    == eofChar && inputStack.size() == 0) { eofbuf eof; }
      
    done != eof;
      return 
    c;

    Tutto quello che mi servirebbe è leggere carattere per carattere una stringa inserita da tastiera fino al raggiungimento della fine della riga usando la funzione readChar().
    L'applicazione di per se dovrebbe elencare in ordine crescende i numeri di ossidazione di una formula inserita (C6H12O6 => H = 12, C = 6, O = 6). Ma questo codice l'ho già sistemato. L'unico problema è riuscire a prendere la riga e i caratteri che la compongono.

  4. #4
    Non puoi utilizzare più semplicemente il metodo toCharArray() della classe String?
    Al mio segnale... scatenate l'inferno!

  5. #5
    Non puoi utilizzare più semplicemente il metodo toCharArray() della classe String?
    Sì, grazie, ottimo suggerimento. Anche perchè i '\n' vengono tolti.

    Grazie ancora!

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.