it-swarm.com.de

Wie konvertiere ich einen String in CharSequence?

Wie konvertiert man String in CharSequence in Java

231
BurningIce

Seit String IS-A CharSequence können Sie eine String überall dort übergeben, wo Sie eine CharSequence benötigen, oder einer String eine CharSequence zuweisen:

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

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

Wenn Sie eine CharSequence in eine String konvertieren möchten, verwenden Sie einfach die toString-Methode, die von jeder konkreten Implementierung von CharSequence implementiert werden muss.

Ich hoffe es hilft.

246
João Silva

Klare Antwort:

String s = "Hello World!";

// String => CharSequence conversion:

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

CharSequence ist eine Schnittstelle und die String Klasse implementiert CharSequence.

45
icza

CharSequence ist eine Schnittstelle und String ist eine der Implementierungen außer StringBuilder, StringBuffer und vielen anderen.

So wie Sie InterfaceName i = new ItsImplementation() verwenden, können Sie CharSequence cs = new String("string") oder einfach CharSequence cs = "string"; verwenden.

11
krmanish007

Sie können verwenden 

CharSequence[] cs = String[] {"String to CharSequence"};
3
Lucas Fialho

Versuch, einen (möglichen) Kontext für die Frage von OP bereitzustellen, indem ich meine eigenen Probleme poste. Ich arbeite in Scala, aber die Fehlermeldungen Ich bekomme alle Java-Referenztypen, und die Fehlermeldung liest sich ähnlich wie der Compiler, der beschwert, dass CharSequence nicht ein String ist. Ich habe im Quellcode bestätigt, dass String die CharSequence-Schnittstelle implementiert, aber die Fehlermeldung macht auf den Unterschied zwischen String und CharSequence aufmerksam, während die eigentliche Ursache des Problems verborgen wird:

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)

Ich konnte dieses Problem mit der Erkenntnis beheben, dass es sich nicht um String/CharSequence handelte, sondern um ein Missverhältnis zwischen Java.lang.Iterable und Scala Iterable.

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

Mein spezielles Problem kann auch über die Antworten unter Scala gelöst werden: Join einer iterierbaren Zeichenkette

Zusammenfassend können OP und andere, die auf ähnliche Probleme stoßen, die Fehlernachrichten sehr genau analysieren und sehen, welche anderen Typkonvertierungen möglich sind.

0
Sarah Messer