我有一个字符数组,声明为char[ ] array = new char[20];
关于这个,我有以下查询:
每个位置的默认值是 '\0000' 吗?
我如何将字符附加到这个数组中?(例如,每次我要求用户输入字母时,我都会在数组中按顺序存储字母)
请多多包涵。我可以很容易地在 C++ 中实现这些,但我是 java 新手。提前致谢!
我有一个字符数组,声明为char[ ] array = new char[20];
关于这个,我有以下查询:
每个位置的默认值是 '\0000' 吗?
我如何将字符附加到这个数组中?(例如,每次我要求用户输入字母时,我都会在数组中按顺序存储字母)
请多多包涵。我可以很容易地在 C++ 中实现这些,但我是 java 新手。提前致谢!
数组在 Java 中被初始化为 0。
数组也是固定大小的,因此如果要添加超过 20 个字符,则必须创建一个更大的新数组并将旧值复制到那里,或者使用更合适的类,如 StringBuilder。
您需要阅读有关从输入流中读取的更多信息。您可以从这里开始,但还有其他精彩的教程。
不完全回答您的问题(因为它仍然模棱两可),但在下文中,我从输入中读取了 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:
输入输入字符并按回车:
zeros
排序数组:eorsz
此外,正如 Rohit 已经提到的,您应该查找String 类及其广泛的实用程序函数。此外,正如您还提到您可能不知道数组中元素的数量,您可能希望将其视为 a List
,在这种情况下您应该使用List<Character>
.
当您创建一个数组时,它的索引将填充您用于该数组的类型的默认值。
因此,对于 a int[]
,0
将填充值,对于char[]
value \u0000
-将填充空字符。有关其他类型的默认值,请参阅JLS - 变量的初始值。
我如何将字符附加到这个数组中?
为此,您必须维护从 0 开始为空的当前索引,并且每次在该索引处插入元素时,将其加一。
如果您有可变增加的数组,则此过程通常不够可行。您应该考虑使用 aList<Character>
代替。
顺便说一句,如果您正在从用户那里读取一个字符串,并尝试将该字符串中的每个字符添加到一个字符数组中,那么您不需要手动执行此操作。String 类提供了一个方法 - String.toCharArray()
,它从您的 String 对象中创建一个字符数组。
您可以按如下方式附加数组中的所有字符
char[ ] array = new char[20];
StringBuilder t=new StringBuilder();
for (char i:array){
t.append(i);
}