2012-05-14 40 views
69

我需要在我的strings.xml文件中的字符串中加上「 - 」。如何在string.xml文件中加入「 - 」

我的問題是,當我把我的字符串是"1261eba2-9d8c-11e1-93e3-40409e0f44a1",日食破口大罵:發現在這行

多個批註: - 替換「 - 」與「短劃線」字符( - , &;#8211;)

我該如何解決這個問題?

+1

您究竟在哪裏需要該值?它是一個標籤,一個標籤值還是一個屬性值? – rekaszeru

+0

顯示標籤 – Bhavin

+0

皮棉神祕魅力 – auval

回答

102

因此,當您閱讀錯誤消息時,您的答案將是 您必須將-替換爲–。然後,它應該工作的罰款=)

http://en.wikipedia.org/wiki/Dash

+2

當您只想將字符串顯示給用戶時,這是確定的。用戶不能真正知道你是在用類似的unicode字符「作弊」。如果你只是想使用正則短劃線看到這個答案:http://stackoverflow.com/a/10895509/78234 –

+1

我認爲代碼是爲了endash,而不是一個普通的連字符。 – John61590

14

使用反斜槓(\)在每個特殊字符前面。像我\ &機器人。

這叫做轉義字符。 (\)

+0

我想你的意思添加轉義字符:每個特殊字符前「\」。 – drew212

+0

http://en.wikipedia.org/wiki/Escape_character轉義字符是反斜槓 - 「\」不是正斜槓 - 「/」 – drew212

+0

@ drew212,它的錯誤,感謝糾正我.. –

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中更改這些符號,它可能會停止工作(我的做法)。 –

+0

我想用一個轉義序列來替換一個短破折號(n-dash)。但'–'看起來就像它的長衝刺符號(m-dash)的轉義序列。 – toobsco42

75

當你想要顯示字符串給用戶時,其他的答案都可以。用戶無法真正辨別出「真實」的破折號和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

這是最好的答案。謝謝。 –

+3

更簡單,更優雅,支持谷歌分析代碼。 –

+9

一個提示:您可能需要將工具:ignore =「TypographyDashes」部分放入那些真正需要真正短劃線的標籤中。 –

2

破折號是一個標點符號,它類似於一個連字符或減號,但從這兩個符號的主要不同長度和功能。短劃線最常見的版本是短劃線( - )和短劃線( - ),分別以字體的小寫n和大寫M的長度命名。

Reference

只是取代-,因爲當你在鍵盤上輸入一個破折號,XML讀取儀表板爲負,僅此而已。

相關問題