[java] CharSequence를 문자열로 변환하는 방법?

Java CharSequence를 어떻게로 변환 할 수 String있습니까?



답변

toString()방법 을 호출함으로써 .

이 순서와 같은 순서로이 순서의 문자를 포함한 캐릭터 라인을 돌려줍니다. 문자열의 길이는이 시퀀스의 길이입니다.


답변

여기에는 약간의 문제가있는 미묘한 문제가 있습니다.

toString()메소드는의 기본 구현을 갖습니다 Object. CharSequence인터페이스입니다. toString()메소드는 해당 인터페이스의 일부로 표시 되지만 컴파일 타임에는 CharSequence toString()메소드 를 재정의하고 메소드의 javadoc이 메소드에 적용한 추가 제한 조건을 준수 하도록 강제하는 것은 없습니다 toString(). 즉,에서 반환 한 순서대로 문자를 포함하는 문자열을 반환해야합니다 charAt().

IDE는 아마도 재정의 해야한다는 것을 상기 시켜서 도움을주지 않습니다 toString(). 예를 들어, IntelliJ에, 이것은 당신이 새로운 만들 경우 당신이 볼 것입니다 CharSequence: 구현 http://puu.sh/2w1RJ를 . 의 부재에 유의하십시오 toString().

당신에 의존하는 경우 toString()임의에 CharSequence, 그것은 해야 제공된 작업 CharSequence구현이 제대로 자신의 일을했다. 그러나 불확실성을 완전히 피하려면 a StringBuilder및을 사용해야합니다 append().

final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();


답변

String.valueOf ()를 직접 사용할 수 있습니다

String.valueOf(charSequence)

이것은 실제로 toString을 호출하기 전에 toString()null 검사를 수행하는 것과 같습니다 charSequence.

이것은 메소드가 a charSequence또는 nullvalue를 리턴 할 때 유용 합니다.


답변