C# 如何在从文本文件拆分行后打印特定字符串(已关闭)

C# 如何在从文本文件拆分行后打印特定字符串(已关闭),c#,text-files,C#,Text Files,我有一个任务要拆分一个字符串,然后打印一个特定的字符串 例如: string str = "Hello@world@,@morning!" 我在“@”之间拆分,我想打印“Hello”这个词 string[]textplit; var lines=File.ReadAllLines(textBox1.Text); 对于(int i=0;i

我有一个任务要拆分一个字符串,然后打印一个特定的字符串

例如:

string str = "Hello@world@,@morning!"
我在“@”之间拆分,我想打印“Hello”这个词

string[]textplit;
var lines=File.ReadAllLines(textBox1.Text);
对于(int i=0;i
当我试着运行这个程序时,它不会打印“Hello”,而是只打印“H”

有人能帮忙修一下吗


谢谢你的回答。

对不起,我已经得到了答案

我不应该使用
foreach
,而应该使用
for

for (int i = 0; i < lines.Length; i++)
{
    textsplit = lines[i].Split('@');
    for (int j = 0; j < textsplit.Length; j++)
    {
        MessageBox.Show(textsplit[0]);
        break;
    }
}
只要这样做,一切都会好起来的

谢谢彼得杜尼奥的帮助

你应该改变

MessageBox.Show(s[0]);


原因是分割后,textsplit中的每个元素都是一个字符串,其中包含您期望的完整单词。但是,您打印了单词的第一个字符s[0],因此只打印了“h”。

它正在打印第一个字符,因为这是您编写的代码。如果需要整个字符串,则将整个字符串传递给
Show()
方法,即
s
s[0]
只是字符串
s
的第一个字符。尝试
MessageBox.Show(s)
。这样只显示数组中的一个字符串似乎很愚蠢。如果你在第一次迭代后就要开始循环,为什么还要循环?@PeterDuniho-hmm我不知道打印解决方案的好方法,因为我只想打印hello这个词,而foreach似乎不可能这样做,我尝试使用for语句。“foreach似乎不可能这样做”--如果您只正确编写了代码,那么它也可以用于
foreach
。但这里的主要问题是:根本不需要循环。为什么要尝试使用
foreach
for
,而这两者都不是必需的,也没有添加任何有用的内容?@PeterDuniho哦,是的,你是对的,我尝试使用messagebox.show(textsplit[0]),如果没有foreach,它就可以工作了,呵呵,在我问这个问题之前,我必须进一步研究它。@PeterDuniho但谢谢你的建议,没有它,我从没想过那件事。。谢谢你,先生
for (int i = 0; i < lines.Length; i++)
{
    textsplit = lines[i].Split('@');
    MessageBox.Show(textsplit[0]);
}
MessageBox.Show(s[0]);
MessageBox.Show(s);