我有一个字符数组,声明为char[ ] array = new char[20];
关于这一点,我有以下疑问:
每个位置的默认值是'\ 0000'吗?
如何将字符附加到此数组中? (例如,每当我要求用户输入字母表并且我已按字母顺序存储字母表中的字母表时)
请承担我的疑问。我可以在C ++中轻松实现这些,但我是java的新手。提前致谢!
答案 0 :(得分:1)
在Java中将数组初始化为0。
数组也是固定大小的,因此如果要添加超过20个字符,则必须创建一个新的更大的数组并在那里复制旧值,或者使用更合适的类,如StringBuilder。
答案 1 :(得分:1)
您需要阅读有关从输入流中读取的更多信息。 You can start here,但是还有其他精彩的教程。
不完全回答你的问题(因为它仍然含糊不清),但在下面我从输入读取了5个字符并输出了排序的字符数组。这将有助于您入门。
public static void main(String[] args) throws IOException {
char arr[] = new char[5];
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter input characters and press enter: ");
for(int i=0; i<arr.length; i++) {
arr[i] = (char) br.read();
}
br.close();
Arrays.sort(arr);
System.out.println("Sorted Array: "+String.valueOf(arr));
}
控制台I / O:
输入输入字符并按enter:
零
排序数组:eorsz
此外,正如Rohit已经提到的那样,你应该查看String class及其广泛的实用程序功能。此外,正如您还提到您可能不知道数组中元素的数量,您可能希望将其视为List
,在这种情况下,您应该使用List<Character>
。
答案 2 :(得分:0)
创建数组时,它的索引将填充您用于数组的类型的默认值。
因此,对于int[]
,值0
将被填充,而char[]
值\u0000
- 空字符将被填充。有关其他类型的默认值,请参阅JLS - Initial Value of Variables。
如何将字符附加到此数组中?
为此,您必须维护从0开始为空的当前索引,并且每次在该索引处插入元素时,将其增加1。
如果您的阵列数量不断增加,此过程通常不够可行。您应该考虑使用List<Character>
代替。
只是为了旁注,如果您正在从用户那里读取字符串,并尝试将该字符串中的每个字符添加到字符数组中,那么您不需要手动执行此操作。 String类提供了一个方法 - String.toCharArray()
,它从String对象中创建一个字符数组。
答案 3 :(得分:0)
您可以在数组中附加所有字符,如下所示
char[ ] array = new char[20];
StringBuilder t=new StringBuilder();
for (char i:array){
t.append(i);
}