Question rapide. Existe-t-il un équivalent de @ appliqué aux chaînes en Java:
Par exemple, je peux faire @"c:\afolder\afile"
en C # et demandez-lui d'ignorer les caractères d'échappement lors du traitement au lieu d'avoir à faire "c:\\afolder\\aFile"
. Existe-t-il un Java équivalent?
hmmm: stackoverflow s'échappe sur moi .. lol. Le deuxième exemple devrait se lire:
c: (double barre oblique inverse) un dossier (double barre oblique inverse) aFichier
Non . Échapper/externaliser la chaîne est votre seul choix.
Non, Java n'a pas littéraux de chaîne textuels .
Si vous voulez un langage de type Java (et basé sur Java-VM) que fait , cependant, vous voudrez peut-être regarder Groovy qui a diverses formes de chaîne littérale .
Comme Kent et Jon l'ont dit, non, il n'y en a pas.
Je réponds juste pour souligner que même s'il y avait, pour votre cas particulier, ce serait une mauvaise idée dans le cas général, en supposant un programme plus que ponctuel.
Les programmes Java s'exécutent sur plus de plates-formes que Windows et d'autres plates-formes ont des délimiteurs de fichiers différents. Ainsi, au lieu de traiter les antislashs échappés, la bonne façon de gérer votre exemple particulier consiste à obtenir la propriété de séparation de fichiers:
String sep = System.getProperty("file.separator");
String filename = ROOTDIR + sep + "folder" + sep + "afile";
Où vous auriez créé séparément ROOTDIR en fonction d'une politique - non seulement la plate-forme, mais si vous voulez que votre "fichier" soit relatif à la racine réelle du système de fichiers, ou relatif au répertoire personnel de l'utilisateur.
Mais certainement, l'utilisation de la propriété de séparation de fichiers rend vos programmes plus largement utilisables. Est-ce plus de travail? Oui. Comme le dit Wanda Sykes, "Mais ça vaut le coup".
Actuellement, il n'est pas pris en charge dans Java mais pourrait être disponible dans les futures versions. Il a été créé JEP 326: Littéraux de chaîne bruts au 23/01/2018
Voir les progrès sur https://bugs.openjdk.Java.net/browse/JDK-8196004
Un jour, vous pourrez probablement le faire avec:
`c:\afolder\afile`
MISE À JOUR: JEP a proposé de supprimer JDK 12: 326: chaîne brute Literals (Preview) Vous pouvez lire la justification ici: http://mail.openjdk.Java.net/pipermail/jdk-dev/2018-December/002402.html
Et plus de détails ici https://bugs.openjdk.Java.net/browse/JDK-8215682
La ligne du bas : Il n'y aura pas de chaînes textuelles dans Java dans un futur proche. Et même si cela apparaîtra plutôt ne sera pas ''.