为什么在空间之前冒号被认为是空间但在结肠之后它不是在Android中考虑

时间:2016-11-22 10:39:37

标签: android string android-layout

我在string文件的string.xml中有关于空间定义的简单问题。

假设我们定义字符串

<string name="regNumber">RegNumber : </string>

它会在Colon之前考虑空间而不是之后。如果我们在Colon之后放置空格,那么我们必须在下面定义。

<string name="regNumber">RegNumber :\u0020</string>

或者让我们这样说

<string name="regNumber">RegNumber :&#160;</string>

问题:为什么不考虑空格Colon而不编写任何代码?

简要说明:

如果写这个

<string name="regNumber">RegNumber : </string>

它会在Colon之前放置空格,但不会在Colon

之后放置空格

所以文字将是RegNumber :

但我的问题会输出这样的内容,在Colon之前不会考虑为什么要考虑它。

RegNumber:

2 个答案:

答案 0 :(得分:0)

因为默认情况下,android修剪所有String以删除不必要的空格..假设你不小心按了空格键,现在你的字符串文件中有20个空格,

<string name="regNumber">RegNumber :                           </string>

Android只修剪前导和尾随空格。我从来没有找到任何理由。但我相信,使用R​​egex验证字符串很有用。 [PS:我可能错了]

另请参阅:Android's documentation on formatting string

答案 1 :(得分:0)

定义的regex被构造为在开头和结尾处忽略空格。它在编译器构建过程的第一阶段定义,称为Lexical analysis