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

어떻게 변환 StringCharSequence자바로?



답변

String IS-A 이므로 CharSequence, String필요한 곳을 전달 CharSequence하거나을 a String에 할당 할 수 있습니다 CharSequence.

CharSequence cs = "string";
String s = cs.toString();
foo(s); // prints "string"

public void foo(CharSequence cs) { 
  System.out.println(cs);
}

당신은 변환하려면 CharSequenceA를 String그냥 사용 toString의 모든 구체적인 구현에 의해 구현되어야 방법 CharSequence.

도움이 되길 바랍니다.


답변

정답 :

String s = "Hello World!";

// String => CharSequence conversion:

CharSequence cs = s;  // String is already a CharSequence

CharSequence인터페이스이며 String클래스가 구현 CharSequence합니다.


답변

CharSequence는 인터페이스이고 String은 StringBuilder, StringBuffer 및 기타 여러 구현 이외의 구현 중 하나입니다.

따라서을 사용하는 것처럼 간단하게 InterfaceName i = new ItsImplementation()사용 CharSequence cs = new String("string")하거나CharSequence cs = "string";


답변

당신이 사용할 수있는

CharSequence[] cs = String[] {"String to CharSequence"};


답변

내 문제를 게시하여 OP의 질문에 대한 (가능한) 컨텍스트를 제공하려고합니다. 스칼라에서 일하고 있지만 모든 참조 Java 유형을 얻는 오류 메시지와 오류 메시지는 CharSequence가 String 이 아니라고 불평하는 컴파일러와 매우 유사합니다 . 소스 코드에서 String이 CharSequence 인터페이스를 구현한다는 것을 확인했지만 오류 메시지는 문제의 실제 원인을 숨기는 동안 String과 CharSequence의 차이점에주의를 기울입니다.

scala> cols
res8: Iterable[String] = List(Item, a, b)

scala> val header = String.join(",", cols)
<console>:13: error: overloaded method value join with alternatives:
  (x$1: CharSequence,x$2: java.lang.Iterable[_ <: CharSequence])String <and>
  (x$1: CharSequence,x$2: CharSequence*)String
 cannot be applied to (String, Iterable[String])
       val header = String.join(",", cols)

문제가 String / CharSequence가 아니라 java.lang.Iterable과 Scala의 내장 Iterable 사이의 불일치라는 인식 으로이 문제를 해결할 수있었습니다.

scala> val header = String.join(",", coll: _*)
header: String = Item,a,b

내 특정 문제는 Scala 의 답변을 통해 해결할 수도 있습니다 . 반복 가능한 문자열 결합

요약하면 OP 및 유사한 문제가 발생하는 다른 사용자는 오류 메시지를 매우 자세히 분석하고 다른 유형 변환과 관련이 있는지 확인해야합니다.


답변