2017-05-09 5 views
0

私たちは皆、このような何か読み:ハードコード nの代わりにシステムプロパティline.separatorを使用するように指示された場合、私のコードはなぜWindows上で動作しますか?

なラインターミネータとパスセパレータとして はシステムに依存して項目を参照するためにはSystem.getProperty(String)メソッドを使用します。

引用は私が\nをハードコーディングされたこのweb site.

からコピーされ、そして期待通りに以下のコードは、私のWindowsマシン上で動作します。

package sample; 

public class Main { 

    public static void main(String[] args) { 
     System.out.println("hello\nworld"); 
    }; 

} 

出力は次のようになります。

hello 
world 

私はJavaコンパイラは黙っ\r\n\nを置き換えると思いました。そこで、JD GUIをダウンロードし、JARファイルを開き、Hello\nworldを見ました。誰も私に\nが動作せず、System.getProperty("line.separator")のような例を教えてもらえますか?

+0

Javaプログラムでファイルにスティングを書き、メモ帳で開きますあなたは問題が – Jens

+0

@ Jensであることを知るでしょう、そうです。コマンドプロンプトが正しい行末に置き換えられ、メモ帳では表示されないようです。あなたのコメントを回答に変換すると、私はそれを受け入れるでしょう –

答えて

0

異なる行区切り文字がありますが、OSによって異なります。このスレッドを読む場合の What is the difference between \r and \n?

抜粋:

より重要なことには、Unixの行区切りとしてN \使用する傾向があります。 Windowsは\ r \ nを行区切りとして使用し、Mac(OS 9まで)は行区切り記号として\ rを使用する傾向があります。 (Mac OS XはUnix-yですので代わりに\ nを使用しますが、代わりに¥rが使用される互換性があります)

+0

これは可能な重複質問です: http://stackoverflow.com/questions/36796136/difference-between-system-getpropertyline-separator-and-n – urgas9

関連する問題