2016-11-22 1 views
6

나는 이것을 매우 기본적인 질문으로 안다. 그러나 나는 그것에 매우 혼란 스럽다. 제대로 입력하지 못했습니다. 문자열을 CharArray으로 변환해야하는 이유는 무엇입니까? 나는 toCharArray() 메서드의 작업을 압니다. 오직 내가 진짜 시간 예를 원한다. 왜 우리가이 방법을 필요로하는지. 내 질문에 나는 또한 hashcode와 charArray의 관계를 이해하고 싶다.문자열을 charArray로 변환해야하는 이유는 무엇입니까?

나는 charArray 표현 알고

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

예를

public class Test { 

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

} 
} 

출력 : 바르 티

나를 위해차이 내기 없다 변수 에 '출력 및 내 문자열 bharti'을 '입니다.

문제 생성 소스 :
이 는 사실 내가이 대부분 toCharArray() 메소드는 내가하지 않았다 it.So에 사용되는 구글에서 일부 코드를 읽고 그래서 해시 암호를 생성하는 코드를 작성하려는 우리 왜 이것을 사용하고 있는가?

+5

'System.out.println'의 관점에서 명백한 차이점은 없습니다. 그러나 특정 API에는 String이 아닌 배열이 필요할 수 있습니다. –

+1

어쩌면 당신은'String'에서 모든 유일한 문자를 원할 것입니다, 아마도 당신은 그것을 뒤집고 싶을 것입니다. 나는 당신이 그것을 필요로 할만한 충분한 예가 있기 때문에 질문을 얻지 못한다. – SomeJavaGuy

+0

@KevinEsche 나는 당신의 대답에서 다소 만족합니다. 사실 나는 단지이 예제를 사용해야하는 몇 가지 예를 필요로합니다. 이 방법은 어디에서 사용할 수 있습니까? 내 질문에 분명히 적혀 있다고 생각합니다. –

답변

4

String에서 char[]으로 변환하는 것은 요소 순서를 사용하여 작업 할 때 유용합니다 (예 : sort()).

문자열이 불변이며 조작하기에 적합하지 않습니다.

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

출력 : 예

또한


abhirt 일부 방법/클래스를 명시 적으로 요구 0,123,258 예 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(… 

근거입력으로는, 사용자가 메모리로부터 숯 [] 내용을 초기화 할 수 있다는 것이다. 자세한 내용은 여기를 참조하십시오 : https://stackoverflow.com/a/8881376/461499

+0

이제 나는 그것을 사용하고있다. 답이 도움이됩니다. 다른 사례에 대한 예를 더 추가하면 정말 감사 할 것입니다. –

+0

Robau 저는 주어진 PBEKeySpec 예제를 작업하고 있습니다. 고마워. 여기에 새로운 바이트 [16]의 역할을 설명 해주시겠습니까 ?? –

+0

그것은 소금입니다. 자세한 내용은 다음을 참조하십시오. http://stackoverflow.com/a/2969871/461499 – RobAu

0

당신은 예를 들어, 문자열 내의 각 문자가 아닌 전체 문자열을 확인하려는 경우 그것은 유용 :

public boolean hasDigit (String input){ 
    for (char c: input.toCharArray()){ 
     if (Character.isDigit(c)){ 
      return true; 
     } 
    } 
    return false; 
} 

이 방법을 확인 문자열 내의 문자 중 하나가 숫자 인 경우.

+0

감사합니다. @ richardK. 또한 도움이되는 답변입니다. 답장을 보내 주셔서 감사합니다. –

0

거기에 차이가 있습니다 문자열과 charArray.In 두 가지 데이터가 동일한 방식으로 저장되지 않습니다 둘 다 같은 의미입니다. 문자열 charArray 동안 불변입니다.문자열은 char 배열로 구현되며 수정할 때마다 새로운 String 객체를 제공합니다 .String은 Char Araay가 아닌 동안 불변의 속성 때문에 상수로 동작합니다.

둘 모두의 사용은 필요와 요구 사항에 따라 다릅니다.

관련 문제