Если я передаю некоторую переменную переменной envirinment через конфигурацию запуска в eclipse, она автоматически ускользает от специальных символов. Я хочу передать некоторые символы «\ n» и «\ r» для некоторого форматирования, но они автоматически преобразуются как «\\ n» и «\\ r», когда я проверяю его значение в коде путем отладки.Переменная среды передачи Java автоматически вытесняет специальные символы
String value= System.getenv("envPassed");
System.out.println("envPassed= "+value);
Так что, если envPassed дается как «привет \ п \ rhello» в конфигурации Run, то он будет преобразован в «привет \\ п \\ г» и выход печатной, как
hi\n\rhello
тогда как выход должен составлять
hi
hello
Есть ли у нас какой-то способ заставить его работать?
Это, по-видимому, странное использование термина «преобразованный». Насколько я вижу, ничего не было преобразовано вообще, вы вставили 'hi \ n \ rhello' в качестве определения переменной и получили строку, содержащую' hi \ n \ rhello'. – Holger
серьезно !!, это даже конвертировало мою двойную обратную косую черту и здесь. Я добавил еще одну обратную косую черту, чтобы показать ее как 2 слэша – sunder
Выход должен * не * быть напечатан как две строки. Его следует печатать как 'hi \ n \ rhello'. Вы предоставили обратную косую черту, вы получили обратную косую черту. Вы вернули именно то, что вы предоставили. Нет конверсии. Единственное, что в Java, которое переводит эти escape-последовательности в символы завершения строки, это компилятор Java, работающий на строковых литералах, и он не участвует в этом процессе. NB Возврат каретки должен предшествовать подаче линии. – EJP