についてなどの空間の末、及び/または先頭の文字列?
-
22-09-2019 - |
質問
しています連結これらの二つの文字列から資源と値ファイル:
<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on </string>
<string name="Toast_Memory_GameWon_part2"> flips !</string>
いこのようになっております:
String message_all_pairs_found = getString(R.string.Toast_Memory_GameWon_part1)+total_flips+getString(R.string.Toast_Memory_GameWon_part2);
Toast.makeText(this, message_all_pairs_found, 1000).show();
その空間末の最初の文字列の先頭の文字列 が消えてしまいます(トーストが表示されます)...
どうしたらよいですか?
くのではないでしょうか答えはどこからこの 文書のリンク
それとも何かのように使用 & ;
の"&"う!!
解決
あなたは書式設定文字列を使用する場合でも、時々、あなたはまだ始めたり、文字列の末尾に空白を必要とします。これらのケースについては、どちらも\
でエスケープなく、またxml:space
属性が役立ちます。あなたは空白のHTMLエンティティ 
を使用する必要があります。
非破壊可能な空白のための使用 
。
定期的なスペースのために使用し 
ます。
他のヒント
私は、同じ問題に遭遇しました。私は、画面上のフィールド名を表すリソース文字列の末尾に空白のままにしておきたかった。
私は、この問題レポートに解決策を見つけた: https://github.com/iBotPeaches/Apktool /問題/ 124 の
このはDuessiが提案するのと同じ考え方です。直接のブランクのためのXMLで\u0020
挿入します保存したいと思います。
例:
<string name="your_id">Score :\u0020</string>
の交換は、したがって、それはあなたのゲームのパフォーマンスには影響しません、ビルド時に行われます。
このドキュメント:
<string name="my_str_spaces">" Before and after? "</string>
私はただのstrings.xmlファイル内のスペースのための "\ U0020" UTFコードを使用します。
<string name="some_string">\u0020The name of my string.\u0020\u0020</string>
は素晴らしい作品。 (AndroidはUTFコードを愛している)
この質問は古いかもしれないが、今のようにそれを行うための最も簡単な方法は、引用符を追加することです。 たとえばます:
<string name="Toast_Memory_GameWon_part1">"you found ALL PAIRS ! on "</string>
<string name="Toast_Memory_GameWon_part2">" flips !"</string>
あなたが本当にそれをあなたがやっていたやり方をしたいなら、私はあなたが空白がそれをエスケープすることにより、関連性があるということを教えていると思います:
<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on\ </string>
<string name="Toast_Memory_GameWon_part2">\ flips !</string>
しかし、私は<のhref = "http://developer.android.com/reference/java/lang/String.html#format%28java.lang.String,%20java.lang.Objectを使用すると思います。.. 。%29" のrel = "noreferrer">このための書式設定文字列。次のような何かます:
<string name="Toast_Memory_GameWon">you found ALL PAIRS ! on %d flips !</string>
そして
String message_all_pairs_found = String.format(getString(R.string.Toast_Memory_GameWon), total_flips);
文字列リソース値で使用する "" ます。
例: "スペースで値が"
または
スペースの使用\ U0020コードます。
ものが 私が使っている\u0020
<string name="hi"> Hi \u0020 </string>
<string name="ten"> \u0020 out of 10 </string>
<string name="youHaveScored">\u0020 you have Scored \u0020</string>
Javaファイル
String finalScore = getString(R.string.hi) +name+ getString(R.string.youHaveScored)+score+ getString(R.string.ten);
Toast.makeText(getApplicationContext(),finalScore,Toast.LENGTH_LONG).show();
スクリーンショット こちらの画像を表示する作業のこのコード
すべての答えはここに私のために動作しませんでした。代わりに、私はこの
やったXML
内の文字列の末尾にスペースを追加します
<string name="more_store">more store<b> </b> </string>
の引数は、プログラムのスペースを追加するために行うことができます。これらのケースは、多くの場合の連結に使用されますので、私は狂気を停止し、ちょうど古い+ " " +
を行うことを決めました。これらは、の最ものヨーロッパの言語で意味をなすだろう、私が集まるでしょう。
私は特にアンドロイドについては考えてきませんが、取り扱い空白通常のXMLのようなこのルックスは - 要素内の先頭と末尾の空白は、一般的に重要でないとみなされて除去されます。 xml:space
を試します:
<string name="Toast_Memory_GameWon_part1" xml:space="preserve">you found ALL PAIRS ! on </string>
<string name="Toast_Memory_GameWon_part2" xml:space="preserve"> flips !</string>
これは実際に(XMLでの空白を維持する方法)の質問に答えていないかもしれないが、それは、より優雅に根本的な問題を解決することがあります。
の代わりの書式文字列を使用してXMLリソース、CONCATENATEのみに依存。 だから、最初の空白を削除します。
<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on</string>
<string name="Toast_Memory_GameWon_part2">flips !</string>
そして異なったあなたの文字列を構築します:
String message_all_pairs_found =
String.format(Locale.getDefault(),
"%s %d %s",
getString(R.string.Toast_Memory_GameWon_part1),
total_flips,
getString(R.string.Toast_Memory_GameWon_part2);
Toast.makeText(this, message_all_pairs_found, 1000).show();
CDATA
を使用しての解決策もあります。例:
<string name="test"><![CDATA[Hello world]]></string>
しかし、一般的に、私は\u0020
は十分に良いと思います。
、あなたはあなたの文字列の定義に引数を追加するアプローチを書式文字列を使用することができます
<string name="error_">Error: %s</string>
次にとして文字列をフォーマットします
String message = context.getString(R.string.error_, "Something went wrong")
これはXMLでは動作しません:スペース= "保存"
私はそれを最も簡単な方法をやったので、=>
I単純に加算+」「+どこ私はそれを必要と...
String message_all_pairs_found = getString(R.string.Toast_Memory_GameWon_part1)+" "+total_flips+" "+getString(R.string.Toast_Memory_GameWon_part2);