質問

ちょっとチャンクのコード(下記参照)が返す文字列:

string.Format("{0}----{1}",3,"test 2");

での行き方を教えてくださいこれを実際に"実行"?を行い、形式/交換{0}、{1}?

私のコードスニペット:

StringBuilder sb = new StringBuilder();
sb.Append("{0}----{1}\",");
sb.AppendFormat(ReturnParamValue(siDTO, "siDTO.SuggestionItemID,siDTO.Title"));
string sbStr = "=string.Format(\""+sb.ToString()+");";

あReturnParamValue、実際に価値をDTO.

良い、下記のようなものです(ただし、いかに実行す:どのように文字列になります。形式な構文解析{0}

たぶん、私は自分のコードスニペットにメソッドになっています。が、なんとか

役に立ちましたか?

解決

なぜ含む文字列です。フォーマットの文字列です。

さんまりとした一般"から話を評価するこの恣意的な表現まで培文字列"そんな簡単な答えです。

れば、代わりに、いただいている方法を提供するパラメータの文字列からの関数呼び出しまった自分ですべてのねじれや仕事をし過ぎです。

うようなことに、オリジナルのコード:

string result
    = string.Format(
        "{0}----{1}",
        ReturnParamValue(siDTO, "siDTO.SuggestionItemID,siDTO.Title"));

でも、こん完全に作らオリジナルのコードのようだけ提供する単一の値として値をフォーマット文字列の {0} が取得できることを条件としての価値からの機能 {1} は据え置きのままです。

何を出力を期待しますか?

あなたの ReturnParamValue() 機能してみて返却の両方のラベルの値は単一文字列?の場合は、だけでなく、コンマで区切られたそう:

var value = ReturnParamValue(siDTO, "siDTO.SuggestionItemID,siDTO.Title"));
var pieces = string.Split(',');
string result
    = string.Format( "{0}----{1}", pieces[0], pieces[1]);

これは、真剣に働く場合 ReturnParamValue() 手法です。

更新日金6月

チェックの宣言 string.Format() 図のようにMSDN:

public static string Format(
    string format,
    params Object[] args
)

とは異なり、特別なケースが見られるC printf(), いていかなければなりませんまたは珍しいやり方について string.Format() 取り扱う複数のパラメータ。鍵は、 params キーワードに、それをコンパイラを提供少し "統語砂糖" 場合のパラメータを配列にします。

ビジネスモデルでビジネスの包装なんて過ごす、シングル object[] -では含まれておりませんが、なにができるようなこと:

object[] parameters 
    = ReturnParamValues(siDTO, "siDTO.SuggestionItemID,siDTO.Title");
string result
    = string.Format("{0}----{1}----{2}", parameters);

もいたようなこと任意のコードベースか維持さんの治療としてコード-匂いとの見方を解決する問題です。

だからこその 可能 ているわけではないの .YMMV。

他のヒント

私はあなたがそれを実行することができるとは思いません。 Javaは本当にインタプリタ言語ではありません。

あなたはそのような目的のために(私が知っているようにも、あなたのJavaアプリケーションに埋め込むことができますJDK6から開始)スクリプト言語を利用することができる、Groovyのような

あなたは、文字列のうちの3つのパラメータを解析するために正規表現を使用して、本当の、実際のString.Formatのメソッドに渡すことができます: - )

何をしたいことは、このようなものであるように、

に見えます:

string sbStr = string.Format("{0}----{1}", siDTO.SuggestionItemID, siDTO.Title);

たぶん私は完全にあなたの質問を理解していなかったが、あなたはフォーマット文字列をフォーマットする必要があるようですね。それが本当ならば、あなたは多分このような何かを試すことができます:

int width = 5;
string format = String.Format("{{0,{0}}}----{{1,{0}}}", width);
string result = String.Format(format, "ab", "cd");

トリックは、二重{または}を使用して{{または}}をエスケープするだけであるので。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top