在Android Java项目中,我有一个像这样的字符串(尽管两边都有不同数量的空白):
String foo = " foo bar "
字符串两边的空格很重要,因为实际字符串包含带有HTML语法高亮显示的缩进代码。
当我通过Html.fromHtml
传递字符串时,会删除此开始和结束空格,但我需要在那里保留空格:
Html.fromHtml(foo).toString() // "foo bar" - I want " foo bar "
如何通过Html.fromHtml
调用保留字符串两侧的空白?
答案 0 :(得分:1)
尝试使用TextUtils.htmlEncode(str)。
此方法将转义所有html字符串字符。
https://developer.android.com/reference/android/text/TextUtils.html#htmlEncode(java.lang.String)
答案 1 :(得分:0)
由于Html.fromHtml()
将字符串解析为html标记,因此您可能希望将编码字符用于
在您的代码中尝试此操作
String foo = " foo bar ";
注意:重复
您需要显示的空格。
修改强>
如果从其他地方获取字符串,则可以在传递空格之前用
替换空格
String foo = getMyFoo();
foo = foo.replaceAll(" "," ");
答案 2 :(得分:0)
Yazan的建议已经足够了,但是既然你说字符串是动态生成的,你总是可以把新生成的字符串作为例子并使用concat()方法。例如s.concat(“& nbsp”) ;
答案 3 :(得分:0)
为了保留起始空格,这个Kotlin代码似乎有用,并且可能不适合用于结束空格:
fun replaceWithNonBreakingAtStart(str: String) = (1..(str.takeWhile { it == ' ' }.count())).map { " " }.joinToString("") + str.trimStart()