eclipseで実行コンフィギュレーションを通じてenvirinment変数として変数を渡すと、自動的に特殊文字がエスケープされます。私はいくつかの書式設定のために '\ n'と '\ r'文字を渡したいと思いますが、これらは自動的に '\\ n'と '\\ r'として変換されます。したがってJava渡し環境変数が自動的に特殊文字をエスケープする
String value= System.getenv("envPassed");
System.out.println("envPassed= "+value);
envPassedはそれが
hi\n\rhello
として印刷 'HI \\ N \\ R' および出力として変換され、実行構成において 'N \ HI \ rhello' として与えられている場合出力は
となるはずですhi
hello
これを動作させる方法はありますか?
これは「変換された」という用語の奇妙な使い方のようです。私が見る限り、何も変換されていないので、変数定義として 'hi \ n \ rhello'を挿入し、' hi \ n \ rhello'を含む文字列を得ました。 – Holger
真剣に!!私のダブルバックスラッシュをここでもシングルに変換していました。私は2つのスラッシュとして表示するためにもう1つのバックスラッシュを追加しました – sunder
出力は2行として出力されません。それは 'hi \ n \ rhello'として表示されます。あなたはバックスラッシュを提供し、バックスラッシュを取得しました。あなたはあなたが提供したものを正確に戻しました。変換なし。これらのエスケープシーケンスを行終了文字に変換するJavaの唯一のものは、文字列リテラル上で動作するJavaコンパイラであり、このプロセスには関係しません。注:キャリッジリターンは改行の前に置く必要があります。 – EJP