c# Do-Loop不向字符串中添加字符
本文关键字:添加 字符 字符串 Do-Loop | 更新日期: 2023-09-27 17:49:15
好的,我有这个字符串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;
您的代码工作正常(我刚刚测试了它)。ContainerName的值为"Average Man{[]"。的球员。字符可能没有正确的值。我用Player。人物= "普通人{[属性(精神10)(身体10)(灵魂10)]}"
更优雅的解决方案是
TextBox1.Text = Player.Character.Substring(0, Player.Character.IndexOf('['))
我假设字符是播放器的字符串属性,你想要的字符串到第一个[
或整个字符串,如果它不存在。
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;