web-dev-qa-db-ja.com

\が前に付かないアポストロフィ

Androidアプリケーションで定義された文字列があります:

<string name="search_occurs">'{string}' occurs {times}</string>

これはエラーを与えます:アポストロフィの前に\がありません( '{string}'で{times}が発生します)

私はこれを修正するためにいくつかのことを試しました:

<string name="search_occurs">\'{string}\' occurs {times}</string>
<string name="search_occurs">&apos;{string}&apos; occurs {times}</string>
<string name="search_occurs"><![CDATA['{string}' occurs {times}]]></string>
<string name="search_occurs"><![CDATA[\'{string}\' occurs {times}]]></string>

エラーを取り除くことはできません。私は何が欠けていますか?

77
Frank Schnabel

これらは両方とも http://developer.Android.com/guide/topics/resources/string-resource.html#FormattingAndStyling に従って動作するはずです。

<string name="search_occurs">\'{string}\' occurs {times}</string>
<string name="search_occurs">"'{string}' occurs {times}"</string>
93
John Boker

文字列の 'の前に\を置くだけです。それはFALSEです。それはTRUEです:)

46
Real Hyder

置換する文字列を'に指定しないのはなぜですか?

また、あなたはこのような構造を知っていますか?

<string name="profile_age_range_text_between">between %1$d and %2$d</string>
<string name="unit_height_inches">%1$d\'%2$d ft</string>
<string name="unit_distance_miles">%s mi</string>
3
WarrenFaith

正しいファイルを編集していることを確認してください。 この回答 のように、エラーが発生すると、Android St​​udioはvalues.xmlファイルを開きます。これは元のファイルに似ています。 \を元のstrings.xmlファイル(または問題のある文字がある場所)に追加する必要があります。それ以外の場合は、エラーを繰り返し続けます。

2
Suragch

アポストロフィ(')を(\')に置き換えるか、すべての前に\を追加( ')

注:()テキスト内のみをコピーします

2
saigopi

このエラーは、文字列で使用されるアポストロフィが原因で発生します

アポストロフィを\ 'Thats Allに置き換える

https://stackoverflow.com/users/3339394/the-martian への回答では、 'を\に置き換える一般的な解決策があり、テキストをWordエディター(メモ帳++など)にコピーする必要があります)そして、プログラムで "replace"オプションを使用して、全体を\ 'に置き換えます。 (評判が足りないので、回答に書いて申し訳ありませんでした!)

0
Farhad