Bharti Rawat Bharti Rawat - 12 days ago 5
Java Question

What is the need of convert a String to charArray?

I know this the very basic question. But i am very confused in it. Properly i am not getting that why we need to convert a String to CharArray. I know the work of

toCharArray()
method. Only i want some real time example that why we need this method. I know charArray representation:


char[] charArray ={ 'a', 'b', 'c', 'd', 'e' };


Example

public class Test {

public static void main(String args[]){
String a = "bharti";
char[] charArray = a.toCharArray();
System.out.println(charArray);

}
}



Output: bharti


For me there is no difference between output and my string bharti in variable 'a'.

Problem creation source : Actually i want to writing a code to generate a hash password so i was reading some code from google there mostly toCharArray() method is used in it.So i didn't get we why are using this.

Hope you guys are understanding me. Thanks for your help.

Answer

Converting from String to char[] is useful if you want to do something with the order of the elements, for example sort() them.

String is immutable and not very suited for manipulation.

For example:

    String original = "bharti";
    char[] chars = original.toCharArray();
    Arrays.sort(chars);
    String sorted = new String(chars);
    System.out.println(sorted);

which prints:

abhirt


Also, some methods/classes explicitly require a char[] as input, for example PBEKeySpec

byte[] salt = new byte[16];
random.nextBytes(salt);
KeySpec spec = new PBEKeySpec("password".toCharArray(), salt, 65536, 128);
SecretKeyFactory f = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
byte[] hash = f.generateSecret(spec).getEncoded(…

The rationale is that you can wipe the char[] contents from memory. See more information here: http://stackoverflow.com/a/8881376/461499

Comments