所以我正在尝试用用户输入填充字符数组。但是,我不想自己指定数组的长度,从而将用户限制在他们可以输入的数量上。例如,我下面的代码只允许用户输入 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)
如果您确实出于某种隐藏的原因:)只想使用数组,那么您可以询问用户输入项的数量并相应地初始化数组。
谢谢海军的