2013-01-15 17 views
5

sì, ho letto alcuni degli altri post in caso di interruzione di riga, ma non mi aiutano.come rilevare interruzioni di riga in java

il mio programma Java dovrebbe leggere un file .PHP e suddividere il codice sorgente in un formato riga per riga. il problema è che non riesco a distinguere realmente un'interruzione di riga da un'altra.

Ho cercato di usare/n lavoro non ha ancora .... ho provato ad utilizzare/r/n lavoro non ha ancora .....

ecco un esempio

step_B = step_A.replaceAll("\n", "XXX"); 

ho provato a sostituire le interruzioni di riga con la parola XXX ma non ha funzionato.

Ecco un esempio del php che volevo dividere, sono riuscito a separare le righe utilizzando; come delimitatore ma devo rifinirlo un po 'di più ora.

$ALL_AUTH = mysql_fetch_row($author_lookup); 
    //preparing to display the output in the table 
    echo "<tr>"; 

volevo che qualcosa di output come questo

INFO: $ALL_AUTH = mysql_fetch_row($author_lookup) 

INFO: //preparing to display the output in the table 

INFO: echo "<tr>" 

ma invece ottengo questo

INFO: $ALL_AUTH = mysql_fetch_row($author_lookup) 

INFO: //preparing to display the output in the table echo "<tr>" 

l'applicazione non riesco a rilevare che non v'è un ritorno a capo dopo il commento termina a la parola "tavolo". C'è un modo per fare questo ? preferibilmente senza codificare la tabella delle parole o qualcosa del genere.

Ohhhh ho trovato l'errore, ho usato una trasformazione tramite alcune regex sul blocco di codice in una fase precedente e che ha incasinato le nuove righe .... il blocco di codice è diventato una linea di testo enorme! quindi nessuna interruzione di linea grazie per il vostro tempo ragazzi!

+1

"\ n" separatore è utilizzato su Windows. È sempre possibile ottenere il separatore di riga utilizzato dal sistema operativo corrente da [System.lineSeparator()] (http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#lineSeparator%28 % 29) - se si è su Java 7. Per le versioni precedenti si può andare con 'System.getProperty (" line.separator ")'. Tieni presente che ciò sarà utile solo se i file vengono creati sullo stesso sistema operativo in uso. – Fallup

risposta

14

Se si hanno i dati già in una stringa:

String[] lines = string.split("\r\n|\r|\n"); 
for (String line : lines) { 
    System.out.println(line); 
} 

o leggere le linee direttamente da un file:

BufferedReader br = new BufferedReader(new FileReader("myfilename")); 
String line = null; 
while ((line = br.readLine()) != null) { 
    System.out.println(line); 
} 

Java 7+ ha un metodo comodo per leggere le linee direttamente dalla filesystem:

Java non esegue il rilevamento del set di caratteri automatico, quindi è responsabilità dell'utente impostare e charset correttamente durante la lettura di un file di testo; altrimenti i caratteri potrebbero non essere letti correttamente. Non dimenticare di essere in ordine: .close() il tuo file gestisce.

+2

Questo o direttamente utilizza un 'BufferedReader' per leggere il file di testo riga per riga. – Neet

0

Credo di avere una soluzione. Hai ragione nel fatto che/n non fa nulla. Tuttavia, java separa le linee usando \n. Nota la barra rovesciata anziché una barra.

Provare a utilizzare \n invece di /n

EDIT

In realtà, ho appena riletto il vostro codice. Secondo questo lo hai fatto correttamente. Assicurati che il tuo codice sia proprio così. Altrimenti, questa risposta non ti aiuta, ma può aiutare gli altri.

1

A seconda della classe Java che si utilizza per leggere il PHP, utilizzare qualcosa come BufferedReader.readLine. Afferrerà una riga di testo per te senza doverti preoccupare della follia \n o \r\n.

Problemi correlati