如何使用用户输入填充数组,而无需在代码中自行指定数组长度



所以我正在尝试用用户输入填充字符数组。但是,我不想自己指定数组的长度,从而将用户限制在他们可以输入的数量上。例如,我下面的代码只允许用户输入 5 个字符,然后退出。任何语言的代码都可以。(下面是 C#)。

Console.Write("Enter a number of characters of your choice...click 1 to exit: ");
bool exitCondition;
int counter = 0;
char[] character = new char[5]; 
do
{
    exitCondition = false; 
    try
    {
        character[counter] = char.Parse(Console.ReadLine());
        if (character[counter] == '1')
            exitCondition = true; 
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error: {0}", ex.Message); 
    }
    counter++;
}
while (exitCondition == false && counter < 5); 

您需要使用集合,它允许元素集合增长或收缩。 在 Java 中,ArrayList适合您的方案。 在 C# 中,您很可能会使用 List

C#

List<char> list = new List<char>();
list.Add('a');
list.Add('b');

爪哇岛

List<Character> list = new ArrayList<Character>();
list.add('a');

数组的大小是静态的。使用java.util.ArrayList(来自集合框架),它是可调整大小的数组。

List<Character> chars = new ArrayList<Character>();
chars.add('a');
chars.add('c');
chars.add('d');

List 接口的可调整大小数组实现。实现所有可选的列表操作,并允许所有元素,包括 null。除了实现 List 接口之外,此类还提供了操作内部用于存储列表的数组大小的方法。

裁判

StringBuilder 就是你所需要的

StringBuidler sb = new StringBuilder();
sb.append(c);
...

然后,如果您真的想要它,您可以从中获取字符数组

char[] a = sb.toString().toCharArray();

虽然通常它只是转换为字符串

 String s = sb.toString()

还有一种方法可以直接使用 StringBuilder 内部 char[]

 char c = sb.charAt(i)
或者,

如果您确实出于某种隐藏的原因:)只想使用数组,那么您可以询问用户输入项的数量并相应地初始化数组。

谢谢海军的

相关内容

  • 没有找到相关文章