所以我试图用用户输入填充char数组。但是我不想自己指定数组的长度,从而限制用户输入的数量。例如,下面的代码只允许用户输入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);
答案 0 :(得分:3)
数组的大小是静态的。使用java.util.ArrayList
(来自Collection框架),它是可调整大小的数组。
List<Character> chars = new ArrayList<Character>();
chars.add('a');
chars.add('c');
chars.add('d');
List接口的可调整大小的数组实现。实现所有可选列表操作,并允许所有元素,包括null。除了实现List接口之外,此类还提供了一些方法来操作内部用于存储列表的数组的大小。
答案 1 :(得分:3)
您需要使用一个集合,该集合允许元素的集合增长或缩小。在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');
答案 2 :(得分:1)
StringBuilder就是您所需要的
StringBuidler sb = new StringBuilder();
sb.append(c);
...
然后你可以从中获取char数组,如果你真的想要它
char[] a = sb.toString().toCharArray();
虽然通常它只是转换成一个字符串
String s = sb.toString()
还有一种方法可以直接使用StringBuilder内部char []
char c = sb.charAt(i)
答案 3 :(得分:0)
或者,如果您真的只想使用数组来隐藏某些原因:),那么您可以询问用户输入项的数量并相应地初始化数组。
谢谢, 海军