How to init char array using char literals?

2019-04-18 07:41发布

问题:

The following statement doesn't work in Java, but works in C:

char c[] = "abcdefghijklmn";

What's wrong?

Does the char array can only be initialized as following?

char c[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'};

回答1:

You could use

char c[] = "abcdefghijklmn".toCharArray();

if you don't mind creating an unnecessary String.

Unlike in C, Strings are objects, and not just arrays of characters.

That said, it's quite rare to use char arrays directly. Are you sure you don't want a String instead?



回答2:

You can initialize it from a String:

char[] c = "abcdefghijklmn".toCharArray();

However, if what you need is a string, you should simply use a string:

String s = "abcdefghijklmn";


回答3:

The literal "abcdefghijklmn" is a String object in Java. You can quickly convert this into a char array by using the String toCharArray() method.

Try this:

char[] c = "abcdefghijklmn".toCharArray();


回答4:

Try this:

String a = "abcdefghijklmn";   
char[] c = a.toCharArray();


回答5:

If you don't want to use String toCharArray(), then yes, a char array must be initialized like any other array- char[] c = new char[] {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'};



标签: java char