将String转换为charArray的需求是什么?

Bha*_*wat 6 java

我知道这是一个非常基本的问题.但我很困惑.正确地说,我不知道为什么我们需要将String转换为CharArray.我知道toCharArray()方法的工作.只有我想要一些实时的例子,说明为什么我们需要这种方法. 在我的问题中,我也想了解charArray与hashcode的关系.

我知道charArray代表:

char[] charArray ={ 'a', 'b', 'c', 'd', 'e' };
Run Code Online (Sandbox Code Playgroud)

public class Test {

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

} 
}
Run Code Online (Sandbox Code Playgroud)

输出:bharti

对我来说,输出和变量'a'中的字符串bharti 没有 区别 .

问题创建源:
实际上我想编写一个代码来生成哈希密码,所以我从谷歌那里读了一些代码,主要是在其中使用了CharArray()方法.所以我没有得到我们为什么使用这个.

Rob*_*bAu 5

如果您想对元素的顺序(例如它们)执行某些操作,则从Stringto转换char[]非常有用sort()

字符串是不可变的,不太适合操作。

例如:

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

打印:

阿伯尔特


此外,某些方法/类明确要求achar[]作为输入,例如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(…
Run Code Online (Sandbox Code Playgroud)

基本原理是您可以从内存中擦除 char[] 内容。在此处查看更多信息:https : //stackoverflow.com/a/8881376/461499