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 체크가 이루어집니다.charSequence
ToString에 실제로 호출하기 전에.
이것은 메서드가 다음 중 하나를 반환할 수 있는 경우에 유용합니다.charSequence
또는null
가치.
가장 안전한 방법
String string = String.valueOf(charSequence);
깊이 파고들자
세 가지 일반적인 방법으로 변환이 시도됩니다.CharSequence
로.String
:
- 타입 캐스팅:
String string = (String) charSequence;
- 발신:
String string = charSequence.toString();
- 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이 안전합니다.
반대편에서, 만약CharSequence
이null
옵션 2, 호출toString()
에서는, A를 부여합니다.NullPointerException
.
내부적으로는 ★★★★★★★★★★★★★★★★★★★★」String.valueOf()
는 ""를 합니다.toString()
의 실행 후 null
그래서 그게 가장 안전한 방법이에요.Java Doc:
인수가 null이면 "null"과 같은 문자열이 반환됩니다.그렇지 않으면 obj.toString() 값이 반환됩니다.
주의해 주십시오. ifCharSequence
null
String.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
'programing' 카테고리의 다른 글
VueJ에서 오른쪽 클릭과 오른쪽 클릭이벤트s (0) | 2022.08.12 |
---|---|
larabel/vuejs2 프로젝트에 일반 사용자 지정 css 파일 추가 (0) | 2022.07.27 |
중첩된 개체 vue js에 대해 v-if 및 v-를 올바르게 수행하는 방법 (0) | 2022.07.27 |
Vuex/Pinia 스토어에서의 관계를 어떻게 처리하고 동기화 상태를 유지합니까? (0) | 2022.07.27 |
javascript 코드를 c 코드로 변환 (0) | 2022.07.27 |