string.xmlファイルに「-」を入れる方法


81

strings.xmlファイル内の文字列に「-」を入れることができる必要があります。

私の問題は、私が文字列を置くとき"1261eba2-9d8c-11e1-93e3-40409e0f44a1"、日食が叫ぶことです:

この行で複数の注釈が見つかりました:-「-」を「endash」文字に置き換えます(–、&;#8211;)

どうすればこれを修正できますか?


1
その値はどこに正確に必要ですか?タグですか、タグ値ですか、それとも属性値ですか?
rekaszeru 2012年

2
「-」を「\-」に置き換えます
carmen_munich 2014

回答:


119

あなたは、エラーメッセージを読んだときにそう、あなたの答えはあなたが交換する必要があることになります-–。その後、正常に動作するはずです=)

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


4
文字列をユーザーに表示するだけの場合は、これで問題ありません。ユーザーは、あなたが似たようなユニコード文字で「不正行為」をしていることを実際に知ることはできません。通常のダッシュを使用したいだけの場合は、次の回答を参照してください:stackoverflow.com/a/10895509/78234
Tal Weiss

2
コードはendash用であり、通常のハイフンではないと思います。
John61590 2016

エンダッシュないAハイフンだ雅thepunctuationguide.com/en-dash.html
ブランデル

84

文字列をユーザーに表示したい場合は、他の回答でも問題ありません。ユーザーは、「実際の」ダッシュとユニコードのトリックの違いを実際に見分けることはできません。
ただし、本当にダッシュが必要な場合(たとえば、その文字列がどこかのパスワードとして、または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
これが最良の答えです。ありがとう。
Guillermo Tobar 2012

10
ヒント:tools:ignore = "TypographyDashes"の部分を、実際にダッシュが必要な<string>タグだけに配置することをお勧めします。
ダンJ

1
何らかの理由で、使用している文字列に無視を設定した場合にのみ機能しました。答えてくれてありがとう、それは間違ったダッシュだとわかりましたが、それを機能させる方法はそれほど簡単ではありませんでした。
Mathijs Segers 2014年

1
私は9-1-1のダイヤラを起動しようとしていましたが、あなたの答えがその鍵でした。ありがとう!
Roisgoen 2015年

14

すべての特殊文字の前に円記号(\)を使用します。私のように\&android。

これはエスケープ文字と呼ばれます。(\)


すべての特殊文字の前にエスケープ文字「\」を追加することを意味すると思います。
drew212 2012年

en.wikipedia.org/wiki/Escape_characterエスケープ文字はバックスラッシュです-"\"フォワードスラッシュではありません-"/"
drew212 2012年

今私の答えを確認してください。これはバックスラッシュ()です。
RajaReddy PolamReddy 2012年

5
私があなた全員が言っていることを使用しているとき、「-」文字を削除しています...私が得ているのは:1261eba29d8c11e193e340409e0f44a1 insted of 1261eba2-9d8c-11e1-93e3-40409e0f44a1 ...
roiberg 2012年

4

ダッシュは、ハイフンまたはマイナス記号に似た句読点ですが、主に長さと機能がこれらの記号の両方とは異なります。ダッシュの最も一般的なバージョンは、enダッシュ(–)とemダッシュ(—)で、それぞれ書体の小文字の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>

2番目のものでは、-は-に置き換えられます。視覚的に違いを見分けるのは難しいです。


1
ただし、注意してください。URLでこれらの記号を変更すると、機能しなくなる可能性があります(私の場合)。
ダンJ

短いダッシュ記号(n-dash)をエスケープシーケンスに置き換えたい。ただし&#8211;、長ダッシュ記号(m-dash)のエスケープシーケンスのように見えます。
toobsco42 2016年

0

EclipseのクイックフィックスショートカットはデフォルトでCtrl+であり、AndroidStudioのクイックフィックスショートカットは1デフォルトでAlt+Enterです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.