質問: ### 前提・実現したいこと エスケープシーケンスを使いたい ### 発生している問題・エラーメッセージ ``` ある参考書を見ながらエスケープシーケンスを使うコードを書いたのですが、実行画面に出力されません。出力画面には 円記号を表示します。:\ アポストロフィを表示します。:' と表示させたいです。 回答お願いします。 ``` ### 該当のソースコード ``` class Sample04 { public static void main(String[] args) { System.out.println("円記号を表示します。:\\"); System.out.println("アポストロフィを表示します。:\'"); } } ``` ### 試したこと 参考書がwindowsで進めていたので¥マークを使っていましたが、自分なりに調べると\を使わないといけないということは分かったのですが、そこからコードに入力し直してもできませんでした。 ### 補足情報(言語/FW/ツール等のバージョンなど) MacBook Pro Java SE8
回答: 起きている事がわかりませんが、 \¥ だとエラーがでるので困っているということでしょうか? > > 自分なりに調べると\を使わないといけないということは分かったのですが > > > これはその通りです。 Mac環境ではエスケープ文字としてバックスラッシュを使ってください。 歴史的な話は置いておいて、 簡単に言えば日本語Win環境は円記号とバックスラッシュがごっちゃになっています(最近は文字コードやフォントにもよりますが)。バックスラッシュを入力すると円記号が表示されてしまうイメージです。 Mac環境でのバックスラッシュはバックスラッシュが表示され、半角円記号は半角円記号が表示されます。そしてエスケープ文字はバックスラッシュです。半角円記号はエスケープ文字ではありません。 ※ WinでもMacでもエスケープ文字に使われる文字のコード(0x5C)は同じなので内部的には同じ文字です。 で、このコードで実現したいのは、エスケープ文字自体はどう出すの という問題なので、 バックスラッシュを二回書いてください。そうすればバックスラッシュが表示されます。 円記号を出したいときは円記号を1回書いてください。 アポストロフィは特殊な文字ではないのでエスケープなしでそのまま出力できます。エスケープしても出ますがMacならそのとき使うのはバックスラッシュです。 と、いう回答で質問にあってますか?