对于编程任务,我必须用 Visual C# 制作一个简单的骰子游戏。该游戏的一部分是显示值列表,并查看值的总和是否超过某个数字。我目前有一个文本框,它显示由换行符分隔的各个值,并且当前正在使用iPlayer1Total += int.Parse(player1TxtBox.Text);
,但这似乎只在文本框的第一行。
问问题
1334 次
6 回答
3
沿换行符将字符串拆分为数组。
String.split 应该能让你到达那里。
然后解析每个值,瞧
于 2012-05-08T12:20:41.850 回答
3
看来您正在使用多行文本框。首先在 "\n\r" 上拆分您的字符串,然后:
string[] strArray =player1TxtBox.Text.Split("\n\r".ToCharArray());
然后
int iPlayer1Total = 0;
foreach (string str in strArray)
{
int temp =0;
int.TryParse(str, out temp);
iPlayer1Total += temp;
}
编辑:拆分的更好选择是:
var strArray = player1TxtBox.Text.Split("\r\n".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
于 2012-05-08T12:21:21.697 回答
1
您应该将文本拆分为字符串数组。MSDN
string[] list = player1TxtBox.Text.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
然后使用
foreach(string num in list)
iPlayer1Total += int.Parse(num);
于 2012-05-08T12:22:00.637 回答
0
MSDN 库是您的朋友。查看 TextBox 上的条目,您会找到所需的内容:
http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox.aspx
提示:注意Lines
属性。
于 2012-05-08T12:22:12.200 回答
0
采用
string[] str = textbox.Text.Split(@"\n\r");
int a=0;
for(int i=0; i< str.Length; i++)
a += int.TryParse(a);
于 2012-05-08T12:22:19.930 回答
0
是否可以安全地假设,因为它是骰子,每个值将只是一个字符。
string t = "125 yhsd 7,8+2";
List<int> diceValues=new List<int>();
foreach (char c in t)
{
int o=0;
int.TryParse(c.ToString(),out o);
if (o > 0 && o < 7)
diceValues.Add(o);
}
输出应该是
骰子值 1 2 5 2
我没有对此进行测试或编译,因此可能存在错误
于 2012-05-08T12:37:38.483 回答