طريقة بسيطة/مباشرة/heredoc لبناء سلسلة HTML في Java
-
30-09-2019 - |
سؤال
في Python ، يمكنني إنشاء سلسلة HTML دون القلق بشأن الهروب من أحرف خاصة مثل <أو "عن طريق إرفاق السلسلة في عروض أسعار ثلاثية مثل:
html_string = """
<html>
<body>
<p>My text with "quotes" and whatnot!<p>
</body>
</html>
"""
هل هناك طريقة مماثلة للقيام بذلك في جافا؟
المحلول
لا يمكن القيام به في جافا كما في بيثون. ومع ذلك ، إذا كنت تستخدم Eclipse ، فانتقل إلى Window-> تفضيلات-> java-> editor-> كتابة خانة الاختيار الأخيرة هي "نص الهروب عند اللصق في سلسلة حرفية". تحقق من ذلك. الآن عندما تلصق عندما يكون المؤشر بين علامات الاقتباس ، سيتم هروبه.
نصائح أخرى
لا ، لكن بعض الأدوات تفلت من أجلك عند لصقها ، مثل Eclipse.
للغرض المذكور ، صفحات خادم جافا قم بالخدعة حتى بدون tripple """
'س :-)
في كود المصدر Java ، يعد الاقتباس المزدوج حرفًا خاصًا ، ويستخدم لإعلان حرفي السلسلة. لا يمكن أن يكون لديك اقتباس مزدوج في سلسلة حرفية دون الهروب منه.
بشكل عام ، سأحاول تجنب سلاسل متشددة من هذا القبيل في الكود المصدري ، خاصة إذا وجدت نفسي أفعل ذلك كثيرًا - كما لاحظت ، إنها ألم في التعامل معها كمصدر وقد تكون على الأرجح للتغيير ، في هذه الحالة يمكنك الاستغناء عن ذلك دون إعادة تجميع. إذا لم تكن بحاجة إلى توفير قطع غيار وقت التشغيل لبيانات النص ، فيمكنك الابتعاد عن شيء بسيط مثل القراءة في البيانات من ملف الخصائص ، أو يمكنك استخدام محرك templating مثل سرعة أباتشي للحفاظ على بيانات الأحرف منفصلة ولا تزال بديلة في وقت التشغيل - تقوم العديد من الأمثلة في دليل المستخدم المرتبط بذلك بالضبط باستخدام HTML.
لتردد خدعة بنجميث من أ سؤال مماثل, ، يمكنك استخدام حرف بديل واستبدالها بعد ذلك:
String myString = "using `backticks` instead of quotes".replace('`', '"');
لقد وجدت أنه من المفيد عندما كنت أكتب اختبارات مع 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\"}}";