>  기사  >  Java  >  Java에서 `toString()`이 배열을 사람이 읽을 수 있는 문자열로 변환하지 못하는 이유는 무엇입니까?

Java에서 `toString()`이 배열을 사람이 읽을 수 있는 문자열로 변환하지 못하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-16 04:37:03523검색

Why Does `toString()` Fail to Convert Arrays to Human-Readable Strings in Java?

toString() 메서드가 배열에 비해 부족한 이유

Java에서 toString() 메서드는 객체를 사람이 읽을 수 있는 문자열 표현. 그러나 배열에 적용하면 이상하게 동작할 수 있습니다.

문제:

toString()을 사용하여 문자 배열을 문자열로 변환하려고 하면 Java는 예상되는 출력을 제공합니다. 대신 대괄호, 배열의 요소 유형을 나타내는 문자(char의 경우 "C") 및 숫자 해시 코드("[C@e53108")를 포함하는 혼란스러운 문자열을 생성합니다.

설명 :

Java의 배열에 대한 기본 toString() 구현은 배열의 유형과 해당 "ID 해시"를 반환하도록 설계되었습니다. 코드"는 메모리에 있는 배열 개체의 고유 식별자입니다. 이 정보는 주로 디버깅 목적으로 유용하며 사람이 소비할 수 없습니다.

해결책:

사람이 읽을 수 있는 배열 표현을 얻기 위해 Java는 다음을 제공합니다. Arrays.toString()이라는 대체 방법이 있습니다. 이 방법은 배열 요소를 쉼표로 구분된 문자열로 변환하여 더 접근하기 쉬운 출력을 제공합니다.

예제 코드에서 다음 수정으로 문제가 해결됩니다.

System.out.println(Arrays.toString(Array));

배열을 사용합니다. toString()을 실행하면 이제 출력이 예상대로 "abcdef"를 올바르게 반환합니다. 횡설수설.

역사적 실수?

배열에 대한 Java의 기본 toString() 동작은 혼란스럽고 직관적이지 않을 수 있다는 이유로 종종 "실수"로 비판을 받아 왔습니다. 일부 개발자는 Arrays.toString()과 유사하게 기본적으로 더 의미 있는 방식으로 배열 요소를 반환했어야 한다고 주장합니다.

위 내용은 Java에서 `toString()`이 배열을 사람이 읽을 수 있는 문자열로 변환하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.