2009-09-08 20 views
204

Cómo convertir String en CharSequence en Java?¿Cómo convertir una cadena a secuencia de caracteres?

+12

La pregunta es una especie de no sensical. Convertir una cadena en una secuencia de caracteres es como convertir una flauta en un instrumento musical. Una cadena ya es una secuencia de caracteres. La clase String implementa la interfaz CharSequence. –

+2

La confusión del OP podría deberse a que no se sabe lo que significa [programar en una interfaz] (http://stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface) – Raedwald

+7

@JeffScottBrown la pregunta tiene sentido, es una maravilla legítima para cualquiera que lea el documento de Android o Java y no tenga los detalles de que CharSequence no es una clase. Su comentario me ayudó, pero si la pregunta no hubiera sido redactada de la manera en que lo es, no lo habría encontrado y habría pasado más tiempo buscando una respuesta de la que realmente vale;) – Kheldar

Respuesta

235

Desde StringIS-ACharSequence, se puede pasar un String siempre que se necesite un CharSequence, o asignar un String a un CharSequence:

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

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

Si desea convertir un CharSequence a un String, solo use el método toString que debe implementarse en cada implementación concreta de CharSequence.

Espero que ayude.

+13

Excepto que no se puede asignar una' CharSequence' a 'String' sin una conversión explícita. – gustafc

+1

Corregido el ejemplo, gracias. Quise decir al revés, es decir, asignar un 'String' a' CharSequence'. –

+1

Estoy confundido por este código "CharSequence cs =" string ";". ¿Cómo podemos instanciar una CharSequence? ¿No es eso una interfaz? (Lo siento, todavía estoy aprendiendo Java). – Mugen

34

respuesta directa:

String s = "Hello World!"; 

// String => CharSequence conversion: 

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

CharSequence es una interfaz, y la clase implementa StringCharSequence.

3

Puede utilizar

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

Bienvenido a Stack Overflow Lucas. Proporcione más explicaciones que un fragmento de código. Puede ser obvio para nosotros, pero ayuda a otros a dejarles saber por qué este código responde la pregunta. –

+0

Enlazar una cadena en una matriz no ayuda a señalar que String es una secuencia de caracteres Char (y, por lo tanto, esa matriz de CharSequence es una matriz de String). – tishma

+0

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

9

CharSequence es una interfaz y su cadena es una de las implementaciones distintas de StringBuilder, StringBuffer y muchos otros.

Así, tal y como se utiliza InterfaceName i = new ItsImplementation(), puede utilizar CharSequence cs = new String("string") o simplemente CharSequence cs = "string";

Cuestiones relacionadas