如何在 C# 中将文本框中的多个数字转换为 int

本文关键字:数字 转换 int 文本 | 更新日期: 2023-09-27 18:33:41

对于编程任务,我必须用Visual C#制作一个简单的骰子游戏。这个游戏的一部分是显示值的列表,并查看值的总和是否超过某个数字。我目前有一个文本框,显示用换行符分隔的各个值,并且目前正在使用 iPlayer1Total += int.Parse(player1TxtBox.Text); ,但这似乎只做了文本框的第一行。

如何在 C# 中将文本框中的多个数字转换为 int

您似乎正在使用多行文本框。首先在"'''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);

沿换行符将字符串拆分为数组。

String.split应该能带你到达那里。

然后解析每个值,瞧

您应该将文本拆分为字符串数组。MSDN

string[] list = player1TxtBox.Text.Split(new string[] { "'r'n" }, StringSplitOptions.RemoveEmptyEntries);

,然后使用

foreach(string num in list)
   iPlayer1Total += int.Parse(num);

MSDN 库是您的朋友。查看文本框上的条目,您将找到所需的内容:

http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox.aspx

提示:请注意Lines属性。

使用

string[] str = textbox.Text.Split(@"'n'r");
int a=0;
for(int i=0; i< str.Length; i++)
   a += int.TryParse(a);

既然是骰子,那么假设每个值只有一个字符,这是否安全。

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);
}

输出应为

骰子值125阿拉伯数字

我没有测试或编译它,所以可能会出现错误