2

我正在尝试做 Windows 控制台应用程序,它允许用户在一行中写入任意数量的字母(字符串),然后单击“Enter”移动到下一行等。如果用户在控制台“showme”中写入,那么它应该显示他信息:行号和该行中字符串中的字母数(图像)。还有应该关闭控制台的“结束”功能,但它已经完成了。我的问题是如何存储用户字符串键入的内容并使用此类信息从“显示”中调用它们(我尝试使用数组)

我做过类似的事情,但它根本不起作用。

 class Text
  {
    static void Main(string[] args)
    {
        Boolean endless = true;
        ArrayList array = new ArrayList();
        String s;

        while (endless)
        {
            if(Console.ReadLine() == "showme")
            {
                Console.WriteLine("--------------");
            }
            if(Console.ReadLine() == "end")
            {
                Environment.Exit(0);
            }
                s = Console.ReadLine() + "\n";
                array.Add(s);
        }

        s = Console.ReadLine();
    }
}

输出

4

2 回答 2

2

几件事:

考虑使用List<>vs. ArrayList(可选)

此外,您永远不会将 ArrayList 的值添加Console.ReadLine()到 ArrayList 中,因为它位于您的循环之外。

static void Main(string[] args)
{
    // Consider using a list instead of an ArrayList (optional)
    List<string> lines = new List<string>();

    while (true)
    {
        string input = Console.ReadLine();

        if (input == "showme")
        {
            // Here we print each string and stats.
            foreach (string s in lines)
            {
                Console.WriteLine(s); // Write the line.
                Console.WriteLine("{0} contains {1} letters", s, s.Length); // Write the stats.
            }
        }
        else if (input == "end")
        {
            Environment.Exit(0);
        }
        else
        {
            // This is where you add your input string to the collection above.
            lines.Add(input);
        }
    }
}
于 2013-01-24T22:36:37.417 回答
0

你能试一下吗:

        if(Console.ReadLine() == "showme")
        {
            Console.WriteLine("--------------");
            for(int i =0; i < array.count; i++)
            {
                Console.WriteLine("Index["+i+"]+" "+array[i]);
            }
        }
于 2013-01-24T22:39:27.167 回答