string.xml中加入空格、换行

本文详细介绍了如何在安卓开发时使用value目录下的string.xml文件保存全局字符串变量,并解决了其中遇到的换行和空格无法正常显示的问题。通过转义特殊字符和使用C语言经典转义符,最终实现了有效显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安卓开发时用value目录下的string.xml文件保存全局的字符串变量,来方便支持多种语言。

看起来就像这样:

<string name="app_name">AndroidTest</string>

一行字字符串中需要加入换行和空格怎么办,直接在<string name="xxx">和</string>中间添加回车和空格是行不通的。

没办法了,只能转义。

[PS:直接添加回车或导致文本信息无法显示]

查到了XML文件中空格和换行等特殊字符的写法。

空格 (&#x0020;)

Tab  (&#x0009;) 

回车 (&#x000D;) 

换行 (&#x000A;)  

但是按这个输入效果并不理想,空格可以显示,但是换行却无效。

想来想去,直接用C语言经典的“\”直接转义,结果OK了。 ( \t    \n )

有时候,最原始的东西往往是最有效的。


来源http://pengjingwen.lofter.com/post/1532f8_59c956


### MyBatis XML 文件中空格导致错误的解决方案 在处理 MyBatis 的 XML 文件时,如果遇到因空格换行或回车符而导致的问题,可以通过以下方法来解决: #### 方法一:调整 `trim` 和自定义分隔符 通过使用 `<foreach>` 标签中的 `open`, `close`, `separator` 属性以及配合 `trim` 标签可以有效去除多余的空格换行。例如,在构建 SQL 查询语句时,可能会因为多出来的空格而引发语法错误。 ```xml <trim prefix="WHERE" prefixOverrides="AND |OR "> <foreach collection="list" item="item" open="" separator=" AND " close=""> column_name = #{item} </foreach> </trim> ``` 上述代码片段展示了如何利用 `prefixOverrides` 去除多余的关键字前缀[^4]。 #### 方法二:XML 配置优化 确保在 MyBatis 的全局配置文件 (`mybatis-config.xml`) 中正确设置 JDBC 类型映射关系能够减少潜在问题的发生概率。具体做法如下所示: ```xml <!-- mybatis-config.xml --> <typeHandlers> <typeHandler jdbcType="VARCHAR" javaType="String" handler="org.mybatis.example.MyExampleTypeHandler"/> </typeHandlers> ``` 这里需要注意的是 Java 数据类型的大小写一致性问题;即应将原生数据类型名称转换为其对应的封装形式 (如把 `string` 改成 `String`) [^1]。 #### 方法三:验证实体类字段匹配度 当出现由于属性命名差异所引起的异常情况时,则需仔细核对 `<resultMap>` 或者 `<association>` 节点下的 property 参数是否完全吻合于实际对象结构之中。比如: ```xml <association property="userDetail" javaType="UserDetail"> <!-- 子字段映射 --> </association> ``` 确认此处设定的名字要跟目标 Bean 成员变量保持统一标准[^3]。 #### 方法四:清理无意义字符 对于那些由编辑器自动插入却毫无作用的空白区域来说,最好手动清除掉它们以免干扰正常逻辑运行流程。另外也可以借助第三方工具库完成这项工作——像 Apache Commons Lang 提供了一个专门用于字符串操作的方法叫做 `StringUtils.stripToEmpty()` ,它可以帮助我们快速定位并消除首尾两端存在的冗余间隔符号。 综上所述,针对 MyBatis 使用过程中可能碰到的各种各样有关间距方面的麻烦事儿给出了几种切实可行的办法供大家参考选用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值