将极长的HTML字符串放入Java(Android)中的String对象的更简单方法

时间:2010-10-21 17:51:32

标签: java html android

我几个月前为客户创建的Android应用程序能够通过电子邮件发送链接到PDF,其中包含大量文本。客户现在希望该文本直接在电子邮件中以HTML格式(包含链接,项目符号等)。

使用Android的Mail Intent,我试图在EXTRA_MESSAGE字段上发送这个长字符串,但由于我必须用双引号包装文本,所以我必须'\'几乎所有我想要的双引号字符串对于成千上万行来说,这是相当不愉快的,更不用说了(如果我没记错的话),对多行使用+ =运算符似乎不起作用。

有没有办法解决这个问题,将长HTML代码放入String对象发送的最简单方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

我不确定你要做什么,或者它有多动态。但您可以考虑使用String.format方法。像String.format("<htmltag>%s</htmltag>","stuff inside tags");和StringBuilder对象一样,以便连接多个字符串并构建最终的字符串。

无论何时使用循环或条件连接字符串,都需要使用StringBuilder或其他类似的构造。 + =运算符导致分配很多String对象,这些对象几乎立即被抛弃,因为它们是不可变的。

答案 1 :(得分:0)

嗯,我想我明白你在找什么。我想你想要使用的是名为TextUtils的{​​{1}}类中的方法。这将获取您的输入并将所有HTML元素更改为其等效项(例如htmlEncode()变为<&lt;变为")。但是,此方法将String作为参数;例如:

&quot;

因此,要获得此字符串,我认为最简单的方法是首先将此HTML字符串存储在XML资源(strings.xml)中,然后使用String escapedString = TextUtils.htmlEncode(unescapedString);访问它:

getString()

这仅适用于HTML字符串始终相同的情况。