提问人:user2700797 提问时间:11/12/2023 最后编辑:Peppermintologyuser2700797 更新时间:11/12/2023 访问量:44
一次将一个文本框中的多个数字添加到数组中
Add multiple numbers from one text box to an array at one time
问:
我正在尝试从文本框中获取多个数字,例如:12 56 35,然后一次将这些数字添加到数组中。
我试图从文本框中获取文本并将其解析为 int,然后将其添加到数组中,但它不起作用。如果我在文本框中有一个数字,它将起作用,但一旦我添加多个数字,它就不起作用了。
namespace Time4
{
public partial class Form1 : Form
{
int[] numbers = new int[10];
int num = 0;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i <= 9; i++)
{
if (int.TryParse(textBox1.Text, out numbers[i]))
{
num = numbers[i];
richTextBox1.Text += num * 4 + "\n";
break;
}
}
}
}
}
答:
1赞
Joe Tüscher
11/12/2023
#1
尝试这样的事情:
var input = "12 23 34";
string[] stringNumbers = input.Split(' ', StringSplitOptions.RemoveEmptyEntries);
foreach (var str in stringNumbers)
{
if (int.TryParse(str, out int parsedInput))
{
// Add them to your array
}
}
在这里,您将输入字符串按空格拆分,但您也可以将其更改为逗号并替换为 .' '
','
0赞
Andrew Morton
11/12/2023
#2
如果你想要更多的通用性,在你想要的数字之间可能存在哪些字符,你可以使用正则表达式来拆分数据,也许是这样的:
using System.Text.RegularExpressions;
var q = "12 34 67 A \t54 1e4 -99\r\n+87";
var nn = new List<int>();
var re = new Regex(@"\s+");
int n = 0;
foreach (string _ in re.Split(q).Where(s => int.TryParse(s, out n))) {
nn.Add(n);
}
Console.WriteLine(string.Join(", ", nn));
输出:
12, 34, 67, 54, -99, 87
中的 告诉它你不关心实际生成的字符串——数字将通过变量 ._
foreach
n
如果找到 10 个整数很重要,则可以在循环后添加检查。nn.Count == 10
评论
String.Split()
方法,看看它是否适合您的要求。