問題タブ [string.format]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - String.Format は StringBuilder と同じくらい効率的ですか
これを行う C# の stringbuilder があるとします。
それは次のものと同じくらい効率的か、それ以上に効率的ですか?
もしそうなら、なぜですか?
編集
いくつかの興味深い回答の後、私が求めていることをもう少し明確にするべきだったと気づきました。文字列を連結するのにどちらが速いか、ある文字列を別の文字列に挿入するのにどちらが速いかをあまり求めていませんでした。
上記のどちらの場合でも、定義済みのテンプレート文字列の途中に 1 つ以上の文字列を挿入したいと考えています。
混乱させて申し訳ありません
c# - 文字列出力:C#でフォーマットまたは連結?
文字列を出力または連結したいとしましょう。次のどのスタイルが好きですか?
var p = new { FirstName = "Bill", LastName = "Gates" };
Console.WriteLine("{0} {1}", p.FirstName, p.LastName);
Console.WriteLine(p.FirstName + " " + p.LastName);
フォーマットを使用しますか、それとも単純に文字列を連結しますか? あなたのお気に入りは?これらのいずれかがあなたの目を傷つけていますか?
一方を使用し、他方を使用しないという合理的な議論はありますか?
私は2番目のものに行きます。
c# - .Netで文字列を条件付きでフォーマットする方法は?
文字列の条件フォーマットを行いたいのですが。次のように、整数と浮動小数点数の条件付き書式を設定できることを知っています。
上記のコードは、変数が正、負、またはゼロの場合、3つの形式のいずれかになります。
文字列引数のセクションを使用する方法があるかどうか知りたいのですが。具体的ですが、不自然な例として、次のコードの「if」チェックを置き換えることを検討しています。
java - Java String.format のフォーマット文字のエスケープ
この質問は、Javaを除いて、この .Netの質問とほとんど同じです。
%1$
javaの文字をどのようにエスケープしますString.format
か?
これを行う必要があるのは、後でさらに情報を挿入する文字列を作成しているためです。引数の 1 つをそのままにすることを考えました"%1$"
が、それは非常にエレガントに見えませんか?
これが明らかな場合は申し訳ありませんが、私のJavaは少し錆びています。
.net - 文字列.フォーマットかどうか?
から複製:文字列出力:C#でフォーマットまたは連結?
特に C# の世界では、すべてに String.Format を使用することは非常に一般的です。通常、VB.NET 開発者として、必要がない限り*私は String.Format を使用しません。
次のような通常の文字列連結を好みます。
私にはこれよりも優れています:
何か不足していますか?それともこれは単なる個人的な好みですか?
String.Format を使用する理由 (回答から) (これを最新の状態に保つように努めます)
- 文字列形式を使用すると、ローカライズが非常に簡単になります
- 明らかに、入力の形式を変更する方が簡単です
- より読みやすくなります(ただし、これは個人的なものです)
- よりよい性能
**スタイルを変更したり動的に置き換えたりする必要がある場合は、String.Format を使用します*
.net - .NET: オブジェクト プロパティの値を文字列に挿入するための String.Format フォームはありますか?
質問に対する直接的な答えは「いいえ」だと思いますが、誰かがこれを行うための本当に単純なライブラリを作成したことを望んでいます(または、私はそれを行うことができます...うーん...)
私が探しているものを例で示しましょう。次のものがあったとします。
私はこのようなことができるようにしたいと思います:
このようなことを行うためのフォーマットがあるかどうか、または誰かがそれを行うためのライブラリを作成したかどうかは誰にもわかりませんか? それほど難しくないことはわかっていますが、ホイールを再実装したくありません。
c# - String.Format()でCultureInfo.CurrentCultureは本当に必要ですか?
IFormatProvider
メソッドで提供するために本当に必要なものは何だと思いますString.Format(string, object)
か?
フルバリアントを書いた方がいいですか
あるいは単に
?
c# - 左または右に string.format (padleft または padright ではない) を任意の文字列で埋め込む
String.Format() を使用して、特定の文字列に任意の文字を埋め込むことはできますか?
スペースを任意の文字にしたいのです。padLeft または padRight でそれを行うことができない理由は、書式設定が実際に実行される別の場所/時間で書式設定文字列を作成できるようにしたいためです。
--編集
--私の問題に対する既存の解決策がないように思われるのを見て、私はこれを思いつきました(Think Before Codingの提案の後)
-EDIT2--
もっと複雑なシナリオが必要だったので、Think Before Coding'sに行きました2番目の提案
投稿するにはコードが多すぎたので、Gist として github に移動しました:
http://gist.github.com/533905#file_padded_string_format_info
そこで人々は簡単にそれを分岐することができます:)
c# - String.Format で使用するカスタム通貨形式が必要
C# で String.Format("{0:c}", somevalue) を使用しようとしていますが、ニーズを満たすように出力を構成する方法を理解するのに苦労しています。ここに私のニーズがあります:
- ブランクへの 0 出力
- 1.00 アウトプットから $1.00
- 10.00 アウトプットから $10.00
- 100.00 アウトプットから $100.00
- $1,000.00 への 1000.00 出力
私は String.Format("{0:c}", somevalue) を試しましたが、値がゼロの場合は $0.00 を出力しますが、これは私が望むものではありません。String.Format("{0:$0,0.00;$(0,0.00);#}", somevalue) も試しましたが、1.0 の場合は $01.00 を出力します。String.Format("{0:$0.00;$(0.00);#}", somevalue) はほとんどの場合に機能しますが、somevalue が 1000.00 の場合、出力は $1000.00 になります。
上記の 5 つのケースすべてに適合する形式はありますか? 私が読んだすべてのドキュメントは、基本的なことだけを詳しく説明しており、このタイプのシナリオには触れていません。