我知道这是一个非常基本的问题.但我很困惑.正确地说,我不知道为什么我们需要将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()方法.所以我没有得到我们为什么使用这个.
如果您想对元素的顺序(例如它们)执行某些操作,则从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