我正在编写一些代码来加扰单词。这是第二次尝试使用不同的方法string.split (' ')
。
我无法从下面的代码中获取我想要的输出。
我要对代码执行的操作是从console.readline获取一个字符串,然后将其拆分并删除任何空格,然后将其输出到console.write。 (测试就是这样,我可以看到for循环工作)
所以
input: 1 2 3 4
should be
output:
1
2
3
4
....
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
string[] words = input.Split(' ');
words = new string[10];
for (int i = 0; i < words.Length; i++)
{
words[i] = Console.ReadLine();
Console.WriteLine(words[i]);
Console.WriteLine("test");
}
}
}
}
输入:1 2 3 4 5 ......(仅作为测试)
输出: (空白) 测试
测试
测试
测试
... ect
任何帮助实现拆分工作都会很棒
答案 0 :(得分:8)
这是问题所在:
string[] words = input.Split(' ');
words = new string[10];
您正在使用Split
...然后通过为变量分配新值来完全忽略结果。总体结果(忽略任何可能的例外)与您刚写的相同:
string[] words = new string[10];
...即10个空引用的数组。
还不清楚为什么你在循环中再次从控制台读取。
答案 1 :(得分:3)
string[] words = input.Split(' ');
words = new string[10];
您使用空数组立即覆盖words
。
string.split
为您创建数组。删除第二行,您的代码应按预期工作。
答案 2 :(得分:1)
我认为下面的内容可能会正常工作。
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
string[] words = new string[10];
words = input.Split(' ');
for (int i = 0; i < words.Length; i++)
{
Console.WriteLine(words[i]);
Console.WriteLine("test");
}
Console.ReadKey();
}
}
如果您不想在此之前指定数组表单的限制
string[] words = input.Split(' ');
也可以。
答案 3 :(得分:1)
尝试foreach而不是
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
string[] words = input.Split(' ');
foreach (string word in words)
{
Console.WriteLine(word);
Console.WriteLine("test");
}
}
}
答案 4 :(得分:0)
取出单词array的第二个init:
static void Main(string[] args)
{
string input = Console.ReadLine();
string[] words = input.Split(' ');
// words = new string[10];
for (int i = 0; i < words.Length; i++)
{
words[i] = Console.ReadLine();
Console.WriteLine(words[i]);
Console.WriteLine("test");
}
}
答案 5 :(得分:0)
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
string[] words = input.Split(' ');
// words = new string[10];
for (int i = 0; i < words.Length; i++)
{
Console.Write(words[i]);
}
Console.ReadKey();
}
}