如何在string.xml文件中放置“-”


81

我需要能够在strings.xml文件中的字符串中添加“-” 。

我的问题是,当我放置字符串"1261eba2-9d8c-11e1-93e3-40409e0f44a1"eclipse时会大喊:

在此行发现多个注释:-用“破折号”字符替换“-”(–,&;#8211;)

我怎样才能解决这个问题?


1
您到底需要什么价值?它是标签,标签值还是属性值?
rekaszeru

2
用“ \-”替换“-”
carmen_munich 2014年

Answers:


119

因此,当您阅读错误消息时,您的答案将是必须替换-–。然后应该可以正常工作=)

http://en.wikipedia.org/wiki/达世币


4
当您只想向用户显示字符串时,就可以了。用户无法真正说出您是在用相似的Unicode字符“作弊”。如果您只想使用常规破折号,请参见以下答案:stackoverflow.com/a/10895509/78234
Tal Weiss

2
我认为代码是用于endash的,而不是常规的连字符。
John61590 '16

是的,这是一个连字符
Blundell,

84

当您想向用户显示字符串时,其他答案都可以。用户无法真正分辨“真实”破折号和unicode欺骗之间的区别。
但是,如果您确实必须使用破折号(例如,因为该字符串在某处用作密码或API的url键),则可以使用以下格式:

<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes">
    <string name="EVA_API_KEY">3c42b725-5e20-41c8-982f-dee40be8a05b</string>
</resources>

该警告将被删除,可以使用常规命令读取字符串:

getResources().getString(R.string.EVA_API_KEY);

3
这是最好的答案。谢谢。
吉列尔莫·托巴尔

10
提示:您可能需要将tools:ignore =“ TypographyDashes”部分放到真正需要真正破折号的<string>标记中。
Dan J

1
由于某种原因,它仅在我将忽略放在所使用的字符串上时对我有用。感谢您的回答,我发现这是一个错误的破折号,但是如何使它工作起来并不是那么简单。
Mathijs Segers 2014年

1
我正在尝试启动9-1-1的电话拨号程序,而您的答案是关键。谢谢!
Roisgoen

14

在每个特殊字符前使用反斜杠(\)。像我\&android。

这称为转义字符。(\)


我认为您的意思是在每个特殊字符前添加转义字符:“ \”。
drew212

en.wikipedia.org/wiki/Escape_character转义字符为反斜杠-“ \”不为正斜杠-“ /”
drew212

现在检查我的答案。这是反斜杠()。
RajaReddy PolamReddy 2012年

5
当即时通讯使用您所有人都说过要删除“-”字符时...即时通讯得到的是:1261eba29d8c11e193e340409e0f44a1安装了1261eba2-9d8c-11e1-93e3-40409e0f44a1 ...
roiberg,2012年

4

破折号是类似于连字符或减号的标点符号,但主要在长度和功能上不同于这两个符号。破折号的最常见版本是破折号(–)和破折号(-),分别以字体的小写n和大写M的长度命名。

参考

只需替换为-因为当您在键盘上输入破折号时,XML会将破折号读取为负号,仅此而已。



1

你可能有这个:

<string name="test1">1261eba2-9d8c-11e1-93e3-40409e0f44a1</string>

但是,您需要以下之一:

<string name="test2">1261eba2&#8211;9d8c&#8211;11e1&#8211;93e3&#8211;40409e0f44a1</string>
<string name="test3">1261eba2–9d8c–11e1–93e3–40409e0f44a1</string>

在第二个中,-替换为-。很难从视觉上分辨出差异。


1
不过请注意:如果您在URL中更改这些符号,它可能会停止工作(我确实做到了)。
Dan J

我想将一个短破折号(n-dash)替换为转义的序列。但&#8211;看起来像是长破折号(m-dash)的转义序列。
toobsco42

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.