In quale sistema operativo "\ n" verrà creata una nuova riga? (Java) [chiuso]

0

(Java Version 8 Update 60)

Ciao. Attualmente sto scrivendo un programma per il mio primo incarico in Java al college.

La mia domanda è, in quale sistema operativo sarà

System.out.println("Hello,\n World");

risultato in

Hello,
World

da scrivere nella console?

Sto scrivendo un programma che usa ampiamente \ n per formattare le mie stringhe e questo funziona perfettamente al 100% sul mio laptop (Windows 10). Ho solo paura che questo si tradurrà in alcune cose stravaganti come

Hello,\n World

su altri sistemi operativi. I miei istruttori usano Mac e Linux e possibilmente versioni precedenti di Windows.

Modifica: ho anche visto qualcosa su "\ r \ n" da qualche parte, qualcuno può spiegare anche questo?

    
posta Logan Higinbotham 21.09.2015 - 05:27
fonte

1 risposta

4

Come altri hanno già indicato, è probabile che la tua domanda che richiede un elenco venga chiusa. Potresti riuscire a salvarlo dall'essere chiuso riformulandolo per non chiedere una lista. Quindi, ti darò una risposta che non include un elenco.

In generale,

 System.out.println("Hello,\n World");

risulterà sempre in

Hello,
World

nella console di qualsiasi sistema operativo in circolazione. In Linux e in altri sistemi appartenenti alla famiglia Unix generale, è un dato di fatto che funzionerà, perché "\ n" è il linefeed in questi sistemi.

Tuttavia, in Windows, dove il carattere di avanzamento riga è "\ r \ n", l'emissione di "\ n" continuerà a funzionare. Quindi, ovviamente, Java passa attraverso la difficoltà di fornire una sorta di conversione. Tuttavia, non ho mai incontrato alcuna promessa ufficiale a nome di Java che questa conversione venga sempre fornita.

Se sei davvero preoccupato di questo problema e non vuoi lasciare nulla al caso, non dovresti emettere "\ n", dovresti emettere la stringa ottenuta dalla seguente chiamata:

System.getProperty("line.separator");
    
risposta data 21.09.2015 - 10:57
fonte

Leggi altre domande sui tag