programing

CharSequence를 문자열로 변환하는 방법

shortcode 2022. 7. 27. 00:10
반응형

CharSequence를 문자열로 변환하는 방법

Java를 변환하려면CharSequence에 대해서String?

그 방법을 호출함으로써.

이 시퀀스의 문자를 포함하는 문자열을 이 시퀀스와 같은 순서로 반환합니다.문자열의 길이는 이 시퀀스의 길이가 됩니다.

여기 약간 이해하기 힘든 미묘한 문제가 있다.

toString()메서드에는 기본 구현이 있습니다.Object.CharSequence인터페이스입니다만,toString()메서드는 해당 인터페이스의 일부로 나타나며 컴파일 시 이를 덮어쓰고 그 추가 제약사항을 따르는 것은 없습니다.CharSequence toString()메서드의 javadoc은toString()method. 즉, 에 의해 반환된 순서대로 문자를 포함하는 문자열을 반환한다.charAt().

IDE를 사용해도 아마 오버라이드 할 필요가 있음을 상기시켜도 도움이 되지 않습니다.toString()예를 들어 intellij에서는 새로운 것을 작성하면 다음과 같이 표시됩니다.CharSequence구현: http://puu.sh/2w1RJ이 없는 것에 주의해 주세요.toString().

의지하고 있는 경우toString()제멋대로CharSequence, 이 동작은,CharSequence구현자가 제대로 작업을 수행했습니다.하지만 불확실성을 완전히 피하고 싶다면StringBuilder그리고.append()다음과 같은 경우:

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

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

String.valueOf(charSequence)

이것은 와 동일해요.toString()NULL 체크가 이루어집니다.charSequenceToString에 실제로 호출하기 전에.

이것은 메서드가 다음 중 하나를 반환할 수 있는 경우에 유용합니다.charSequence또는null가치.

가장 안전한 방법

String string = String.valueOf(charSequence);

깊이 파고들자

세 가지 일반적인 방법으로 변환이 시도됩니다.CharSequence로.String:

  1. 타입 캐스팅:String string = (String) charSequence;
  2. 발신:String string = charSequence.toString();
  3. String.valueOf()방법:String string = String.valueOf(charSequence);

그리고 이걸 어디다 돌려놓으면CharSequence charSequence = "a simple string";셋 다 기대했던 결과를 낼 수 있을 것 같아요.

이 문제는 우리가 그 성질을 확신할 수 없을 때 발생합니다.CharSequence.실은.CharSequence는 입니다.interface몇 개의 다른 클래스가 구현하고 있는 예를 들어...String,CharBuffer,StringBuffer, 등. 즉, 변환하는 것은String에 대해서CharSequence있나 솔직한 할당 연산, 캐스팅 또는 아무것도 필요하다.하지만, 그 반대로,Upcasting에, 그것은 사실이 아니다.

우리가 확신한다면CharSequence실제로의 대상이다String옵션 1-타입 캐스팅을 사용할 수 있습니다.그렇지 않으면, 우리는 a를 얻을 것입니다.ClassCastException이 경우 옵션2와 3이 안전합니다.

반대편에서, 만약CharSequencenull옵션 2, 호출toString()에서는, A를 부여합니다.NullPointerException.

내부적으로는 ★★★★★★★★★★★★★★★★★★★★」String.valueOf()는 ""를 합니다.toString()의 실행 후 null그래서 그게 가장 안전한 방법이에요.Java Doc:

인수가 null이면 "null"과 같은 문자열이 반환됩니다.그렇지 않으면 obj.toString() 값이 반환됩니다.


주의해 주십시오. ifCharSequencenullString.valueOf()합니다."null", 값이 아닙니다.

CharSequence 배열을 변환하는 경우 이를 간단히 수행할 수 있으며 String [] 변수에 저장할 수도 있습니다.

CharSequence[] textMsgs = (CharSequence[])sbm.getNotification().extras.get(Notification.EXTRA_TEXT_LINES);
if (textMsgs != null) {
   for (CharSequence msg : textMsgs) {
       Log.e("Msg", msg.toString());
   }
}

또한 Stringbuilder를 해제할 수 있습니다.

new StringBuilder(charSequence).toString();

언급URL : https://stackoverflow.com/questions/7707556/how-to-convert-charsequence-to-string

반응형