2011-12-24 20 views

risposta

30

Supponendo c'è una nuova riga alla fine della stringa che si desidera rimuovere, si può fare questo:

s = s.substring(s.indexOf('\n')+1); 

Quando non ci sono nuove linee, s rimarrebbe stesso.

4

Tecnicamente, perché i Mac (fino a OS 9) usato per usare \r e come la soluzione accettata non risolve questo, sarebbe opportuno utilizzare:

s = s.substring(s.indexOf(System.getProperty("line.separator"))+1); 

Ma, come è stato detto nel commenti, quando usi questo codice devi assicurarti di non lavorare ad es su file di codice sorgente con Unix terminazioni di linea su Windows.

+3

Poiché gli unici due schemi di separazione delle linee che sono comuni sono '\ n' e' \ r \ n', e il letterale '\ n' funziona per entrambi, penso che sia più affidabile di' line.separator'. Si consideri, ad esempio, che quando si lavora con file di codice sorgente con terminazioni di riga unix su Windows, questo approccio fallirà, mentre quanto sopra avrà successo. Quindi cercare '\ r \ n' su Windows è più probabile che crei un bug specifico per la piattaforma piuttosto che prevenirne uno, in questo caso. –

Problemi correlati