> Java > java지도 시간 > 본문

Java에서 `Array.toString()`이 문자 배열에 대해 예기치 않은 출력을 생성하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-11-24 05:25:10
원래의
994명이 탐색했습니다.

Why Does `Array.toString()` Produce Unexpected Output for Character Arrays in Java?

Array.toString()의 예기치 않은 출력

Java에서 toString() 메서드는 일반적으로 배열을 인간 형식으로 변환하는 데 사용됩니다. 읽을 수 있는 문자열 표현. 그러나 문자 배열의 경우 기본 toString() 구현은 예상치 못한 출력을 생성하며 이는 임의의 문자 시퀀스로 나타납니다.

이 문제는 배열에 대해 구현된 기본 toString() 메서드가 다음을 반환하기 때문에 발생합니다. "[C@로 표시되는 배열의 ID 해시 코드 뒤에 16진수 숫자가 옵니다. 이 표현은 디버깅 목적에는 유용하지만 인간에게는 유용하지 않습니다. 소비.

해결책: Arrays.toString() 사용

사람이 읽을 수 있는 문자 배열의 문자열 표현을 얻으려면 Arrays.toString( ) 메서드 대신 이 메서드는 문자 배열을 구체적으로 처리하고 이를 배열 내의 모든 문자를 포함하는 문자열로 변환합니다.

아래는 Arrays.toString() 사용 방법을 보여주는 업데이트된 코드 조각:

import java.util.Arrays;

class ToString {
    public static void main(String[] args) {
        char[] array = {'a', 'b', 'c', 'd', 'e', 'f'};
        System.out.println(Arrays.toString(array));
    }
}
로그인 후 복사

이 코드는 예상되는 출력인 "abcdef"를 인쇄합니다.

설명

Arrays.toString() 메서드는 문자 배열을 포함하여 다양한 유형의 배열을 처리하도록 특별히 설계되었습니다. 배열을 반복하면서 각 문자를 결과 문자열에 추가합니다. 이 프로세스를 통해 사람이 읽을 수 있는 배열 문자열 표현이 생성됩니다.

기본 동작의 이유

배열에 대한 기본 toString() 구현은 간결한 문자열 표현을 제공하기 위해 만들어졌습니다. 디버깅 목적으로 배열을 표현합니다. ID 해시 코드를 표시함으로써 개발자는 배열의 메모리 위치를 빠르게 식별하고 다른 배열과 구별할 수 있습니다.

그러나 이 표현은 배열의 내용을 사용자에게 표시하거나 사용자에게 표시하는 데 실용적이지 않습니다. 문자열 표현을 읽거나 처리하려는 시나리오에서 사용하세요.

위 내용은 Java에서 `Array.toString()`이 문자 배열에 대해 예기치 않은 출력을 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿