使用StringBuilder时转义引号

时间:2015-08-21 12:42:52

标签: java html

我在Java中使用StringBuidler来构建HTML页面。

我想知道如何在不放置" ""的情况下逃避所有引号(\)每次? 例如,每次我追加这样的字符串:

StringBuilder a ;
a.append(<div id = \"Name\" ...>)

我想直接写:

a.append(<div id = "Name" ..>

感谢。

5 个答案:

答案 0 :(得分:7)

简短回答:在Java中无法解决这个问题

答案很长:Java没有多种方法来封装字符串。你总是使用双引号,所以如果你想在你的String中使用双引号,你必须将它们转义。

但如果他们真的烦恼你,你可以申请一些诡计:

  1. 将您的字符串放入文本文件中并从那里阅读。

  2. 使用不同的字符而不是引号字符,并使用replace来输入正确的引号。当然,您的替换字符不得出现在字符串中的任何其他位置。

  3. 使用不同的编程语言(如Groovy)编写有问题的代码,Groovy有不同的方式来划分字符串。

  4. 因为您似乎生成了HTML:使用适当的模板引擎,这对类固醇来说确实是选项1。

答案 1 :(得分:3)

构建HTML模板时,最简单的解决方案是使用文本文件。

你可以这样做

  • 一个简单的文本文件,其中用您想要更改的代码替换()标记
  • 使用属性文件将文本部分内联。
  • 使用具有流畅API的库来生成HTML
  • 使用速度为您执行替换。
  • 使用JSP等其他许多网页格式之一。

但是,没有办法避免在Java代码中转义。唯一的选择是你使用另一个字符,如(Alt-Graphic-B),你最后会替换它。

答案 2 :(得分:1)

你不能,这只是用手写填充StringBuilder HTML代码的一个坏主意的原因之一。

答案 3 :(得分:0)

它存在于Java之外的其他语言中,但使用Java是不可能的。

使用coffescript,您可以,例如:

 html = """
         <div id="Name" > ... </div>
        """ 

答案 4 :(得分:0)

没有正确的方法可以做到这一点,但你可以在你的String中放置一个很少使用的替换字符(代字号或其他东西),然后在其上调用.replace()。

理想情况下,如果您需要原始字符串,则应该从文件加载数据。