Szybkie pytanie. Czy istnieje odpowiednik @ zastosowany do ciągów znaków w Javie:
Na przykład mogę to zrobić @"c:\afolder\afile"
w C # i ignorować znaki ucieczki podczas przetwarzania, zamiast robić "c:\\afolder\\aFile"
. Czy istnieje odpowiednik Java?
hmmm: stackoverflow ucieka na mnie .. lol. Drugi przykład powinien brzmieć:
c: (podwójny lewy ukośnik) afolder (podwójny odwrotny ukośnik) aFile
@
można go również użyć do używania słów kluczowych języka jako identyfikatorów.Odpowiedzi:
Nie . Zmiana znaczenia / eksternalizacja ciągu to jedyny wybór.
źródło
Nie, Java nie ma dosłownych literałów ciągu .
Jeśli jednak potrzebujesz języka podobnego do Java (i opartego na Java-VM), który to robi , możesz spojrzeć na Groovy, który ma różne formy literału ciągu .
źródło
groovy.codehaus.org
są uszkodzoneJak powiedzieli Kent i Jon, nie, nie ma.
Odpowiadam tylko po to, aby wskazać, że nawet gdyby istniał, dla twojego konkretnego przypadku, byłby to zły pomysł w ogólnym przypadku, zakładając więcej niż jednorazowy program.
Programy Java działają na większej liczbie platform niż tylko Windows, a inne platformy mają inne ograniczniki plików. Więc zamiast zajmować się odwrotnymi ukośnikami uciekającymi, prawidłowym sposobem obsługi konkretnego przykładu jest pobranie właściwości separatora plików:
Tam, gdzie osobno utworzyłbyś ROOTDIR na podstawie pewnych zasad - nie tylko platformy, ale także tego, czy chcesz, aby twój „plik” był względny w stosunku do rzeczywistego katalogu głównego systemu plików, czy też względem katalogu domowego użytkownika.
Ale zdecydowanie użycie właściwości separatora plików sprawia, że programy są bardziej użyteczne. Czy to więcej pracy? Tak. Jak mówi Wanda Sykes: „Ale warto”.
źródło
Obecnie nie jest obsługiwany w Javie, ale może być dostępny w przyszłych wersjach. W dniu 2018/01/23 utworzono JEP 326: Raw String Literals
Zobacz postęp na https://bugs.openjdk.java.net/browse/JDK-8196004
Pewnie pewnego dnia będziesz mógł to zrobić za pomocą:
UPDATE: JEP zaproponował usunięcie z JDK 12: 326: Raw String Literals (Preview) Możesz przeczytać uzasadnienie tutaj: http://mail.openjdk.java.net/pipermail/jdk-dev/2018-December/002402.html
Więcej szczegółów tutaj https://bugs.openjdk.java.net/browse/JDK-8215682
Podsumowując : w najbliższej przyszłości w Javie nie będzie napisów dosłownych. A nawet jeśli się pojawi, to raczej nie będzie ''.
źródło