6

わかりました、これを含むこの文字列Player.Characterがあり"Average Man{[Attributes (Mind 10) (Body 10) (Soul 10)]}"ます。

そして、このdo-loopを設定して、一度にこの文字列を1文字ずつ通過し、"["チェックする各文字を別の文字列に追加するときにこれを確認する必要がありますContainerName。問題は、ContainerName にこれだけが含まれていること"["です"Average Man{"

なぜこれが起こっているのか、そしておそらく私のアマチュアの心が処理できる解決策を理解するのを手伝ってくれる人がいれば、私は最も親切です.

ああ、ここに私のコードがあります。

int count = -1;

string ContainerName = "";

//Finds Start of container
do
{
    count = count + 1;
    ContainerName = ContainerName + Player.Character[count].ToString();
} while (Player.Character[count].ToString() != "[" && 
         Player.Character.Length - 1 > count);

textBox1.Text = ContainerName;
4

2 に答える 2

1

CharacterはPlayerの文字列プロパティであると想定しており、文字列[が存在しない場合は、最初の文字列または文字列全体までの文字列が必要です。

StringBuilder sb = new StringBuilder();
foreach (char c in Player.Character)
{
    if (c == '[')
        break;
    sb.Append(c);
}
textBox1.Text = sb.ToString();

また

var i = Player.Character.IndexOf('[');
textBox1.Text = i >= 0 ? Player.Character.Substring(0, i) : Player.Character;
于 2012-12-20T15:39:44.877 に答える
1

あなたのコードは正常に動作します (私はちょうどそれをテストしました)。ContainerName の値は「Average Man{[」です。Player.Charector の値が正しくない可能性があります。私は Player.Charecter = "Average Man{[Attributes (Mind 10) (Body 10) (Soul 10)]}" を使用しました

よりエレガントなソリューションは

TextBox1.Text = Player.Character.Substring(0, Player.Character.IndexOf('['))
于 2012-12-20T15:46:04.757 に答える