ejemplo - Manera simple/directa/heredica de construir una cadena HTML en Java
private jlabel (5)
En el código fuente de Java, la comilla doble es un carácter especial, usado para declarar cadenas literales. No puede tener una comilla doble en un literal de cadena sin escapar de ella.
En general, trataría de evitar cadenas de codificación rígidas como esa en el código fuente, especialmente si me encontrara haciendo muchas cosas, como ha notado, es una molestia tratarlas como fuente y es muy probable que sean para cambiar, en cuyo caso podrías hacerlo sin recompilar. Si no necesita suministrar partes de tiempo de ejecución a los datos de texto, podría salirse con la suya con algo tan simple como leer los datos de un archivo de propiedades, o podría usar un motor de plantillas como Apache Velocity para mantener los datos de los personajes separados y aún puede sustituir variables en tiempo de ejecución: varios de los ejemplos en la guía del usuario vinculada hacen exactamente eso con HTML.
En Python puedo construir una cadena HTML sin preocuparme por el escape de caracteres especiales como <o "simplemente encerrando la cadena entre comillas triples como:
html_string = """
<html>
<body>
<p>My text with "quotes" and whatnot!<p>
</body>
</html>
"""
¿Hay una manera similar de hacer esto en Java?
No se puede hacer en Java como en Python. Sin embargo, si está utilizando Eclipse, vaya a Ventana-> Preferencias-> Java-> Editor-> Escritura. La última casilla de verificación es "Escape de texto al pegar en un literal de cadena". Mira esto. Ahora, cuando pegas cuando el cursor está entre comillas, se escapará.
No, pero algunas herramientas lo evitan cuando lo pega, como eclipse.
Para el propósito mencionado, las páginas de Java Server hacen el truco incluso sin el triple """
''s :-)
Para repetir el truco de benjismith de una pregunta similar , puedes usar un personaje alternativo y reemplazarlo después:
String myString = "using `backticks` instead of quotes".replace(''`'', ''"'');
Lo encontré útil cuando estaba escribiendo pruebas con JSON
String json = "{`kind`:`file`,`sid`:802,`rid`:5678 ,`attrs`:{`name`:`FILE-WG-2468`}}".replace(''`'', ''"'');
// vs
String json = "{/"kind/":/"file/",/"sid/":802,/"rid/":5678 ,/"attrs/":{/"name/":/"FILE-WG-2468/"}}";