significado - Java equivalente de las cadenas literales de C#con @
tipos de datos en java (4)
Pregunta rápida. ¿Hay un equivalente de @ como se aplica a las cadenas en Java:
Por ejemplo, puedo hacer @"c:/afolder/afile"
en C # y hacer que ignore los caracteres de escape al procesar en lugar de tener que hacer "c://afolder//aFile"
. ¿Hay un equivalente de Java?
hmmm: stackoverflow me está escapando ... jaja. El segundo ejemplo debería decir:
c: (doble-barra invertida) afloradora (doble-barra invertida) aFile
Actualmente no es compatible con Java, pero podría estar disponible en futuras versiones. Se creó JEP 326: Literales de cadenas crudas en 2018/01/23
Vea el progreso en https://bugs.openjdk.java.net/browse/JDK-8196004
Probablemente algún día puedas hacerlo con:
`c:/afolder/afile`
Como Kent y Jon han dicho, no, no hay.
Estoy respondiendo solo para señalar que incluso si hubiera, para su caso particular, sería una mala idea en el caso general, asumiendo un programa más que excepcional.
Los programas Java se ejecutan en más plataformas que solo Windows, y otras plataformas tienen diferentes delimitadores de archivos. Por lo tanto, en lugar de ocuparse de las barras diagonales escapadas, la forma correcta de manejar su ejemplo particular es obtener la propiedad del separador de archivos:
String sep = System.getProperty("file.separator");
String filename = ROOTDIR + sep + "folder" + sep + "afile";
Donde habría creado ROOTDIR por separado en función de alguna política, no solo de la plataforma, sino de si desea que su "afile" sea relativo a la raíz del sistema de archivos real o relativa al directorio de inicio del usuario.
Pero definitivamente, el uso de la propiedad separador de archivos hace que sus programas sean más ampliamente utilizables. ¿Es más trabajo? Sí. Como dice Wanda Sykes, "pero vale la pena".
No, Java no tiene literal literales literales .
Sin embargo, si desea un lenguaje similar a Java (y basado en Java-VM), es posible que desee ver Groovy, que tiene varias formas de cadena literal .
No Escapar / externalizar la cadena es su única opción.