Equivalente Java delle stringhe letterali di C # con @

Domanda veloce. C’è un equivalente di @ come applicato alle stringhe in Java:

Ad esempio, posso eseguire @"c:\afolder\afile" in C # e fare in modo che ignori i caratteri di escape durante l’elaborazione invece di dover eseguire "c:\\afolder\\aFile" . Esiste un equivalente Java?

hmmm: StackOverflow mi sta sfuggendo .. lol. Il secondo esempio dovrebbe essere:

C: (double-backslash) afolder (doppio backslash) aFile

No Sfuggire / esternalizzare la stringa è la tua unica scelta.

No, Java non ha letterali stringa letterali .

Se si desidera un linguaggio simile a Java (e basato su Java-VM), tuttavia, si potrebbe voler dare un’occhiata a Groovy che ha varie forms di stringhe letterali .

Come hanno detto Kent e Jon, no non c’è.

Rispondo solo per far notare che anche se ci fosse, per il tuo caso particolare, sarebbe una ctriggers idea nel caso generale, assumendo un programma più che una tantum.

I programmi Java funzionano su più piattaforms rispetto a Windows e altre piattaforms hanno delimitatori di file diversi. Quindi, invece di gestire i backslash con escape, il modo corretto per gestire il tuo particolare esempio è ottenere la proprietà del separatore di file:

 String sep = System.getProperty("file.separator"); String filename = ROOTDIR + sep + "folder" + sep + "afile"; 

Dove avresti creato separatamente ROOTDIR in base ad alcuni criteri – non solo la piattaforma, ma se vuoi che il tuo “afile” sia relativo alla radice del file system attuale o alla directory home dell’utente.

Ma sicuramente, l’uso della proprietà separatore di file rende i tuoi programmi più largamente utilizzabili. È più lavoro? Sì. Come dice Wanda Sykes, “Ma ne vale la pena”.

Attualmente non è supportato in Java ma potrebbe essere disponibile nelle versioni future. È stato creato JEP 326: Raw String Literals al 2018/01/23

Vedi i progressi su https://bugs.openjdk.java.net/browse/JDK-8196004

Probabilmente un giorno sarai in grado di farlo con:

 `c:\afolder\afile`