带有字符串数组的文本文件获取位置子字符串

本文关键字:字符串 获取 位置 文件 数组 文本 | 更新日期: 2023-09-27 18:04:13

我遇到了以下问题:

我正在将一个文件加载到c#中,然后用以下代码将其按行拆分。

// Splitting by line from original file
string[] lines = showText.Split(new string[] { "'r'n", "'n" }, StringSplitOptions.None);

现在我需要一个for循环,它将通过lines并从这两行分别获得Substring

在某种程度上,这是我想要完成的:

for (int i = 0; i < lines.Length; i++)
{
    int[] testing = new int[i];
    testing[i] = int.Parse(lines[i].Substring(16, 1));
    textBox1.Text = testing.ToString();
}

这里的错误是:Index超出了数组的边界。

这是一张图片,也是为了更好地了解我在做什么。

http://s30.postimg.org/jbmjmqv1t/work.jpg

textBox1.Text = lines[0].Substring(16,1) + "   " + lines[0].Substring(23,9);
textBox1.Text = lines[1].Substring(16,1) + "   " + lines[1].Substring(23,9); //etc
有谁能帮我一下吗?

带有字符串数组的文本文件获取位置子字符串

您正在for循环中创建数组,因此它是为每行创建的,并且长度错误。而不是这部分代码:

for (int i = 0; i < lines.Length; i++)
{
    int[] testing = new int[i];
    testing[i] = int.Parse(lines[i].Substring(16, 1));
    textBox1.Text = testing.ToString();
}

你应该这样做:

int[] testing = new int[lines.Length];
for (int i = 0; i < lines.Length; i++)
{
    testing[i] = int.Parse(lines[i].Substring(16, 1));
    textBox1.Text = testing.ToString();
}

我是这样解决的。

int[] testing = new int[lines.Length];
textBox1.Clear(); //Just to clear it if button pressed again
for (int i = 0; i < lines.Length; i++)
{
    testing[i] = int.Parse(lines[i].Substring(16, 1));//just getting the needed value
    textBox1.Text += testing[i].ToString() + "'r'n" ;//adding each value to textBox1, separated by new line
}