2009-09-08 13 views
204

Come convertire String in CharSequence in Java?Come convertire una stringa in CharSequence?

+12

La questione è sorta di non sensical. Convertire una stringa in un oggetto CharSequence è come convertire un flauto in uno strumento musicale. Una stringa è già un oggetto CharSequence. La classe String implementa l'interfaccia CharSequence. –

+2

La confusione dell'OP potrebbe derivare dal non sapere cosa significhi [programma su un'interfaccia] (http://stackoverflow.com/questions/383947/what-doesit-mean-to-program-to-an-interface) – Raedwald

+7

@JeffScottBrown la domanda ha davvero senso, è una meraviglia legittima per chiunque stia leggendo attraverso il documento Android o Java e manca il dettaglio che CharSequence non è una classe. Il tuo commento mi ha aiutato, ma se la domanda non fosse stata formulata nel modo in cui è, non l'avrei trovata e avrei trascorso più tempo a cercare una risposta di quanto valesse veramente;) – Kheldar

risposta

235

Dal StringIS-ACharSequence, è possibile passare un String ovunque è necessario un CharSequence, o assegnare un String ad un CharSequence:

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

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

Se si desidera convertire un CharSequence ad un String, utilizzare semplicemente il metodo toString che deve essere implementato da ogni implementazione concreta di CharSequence.

Spero che aiuti.

+13

Tranne che non è possibile assegnare un' CharSequence' a un 'String' senza un cast esplicito. – gustafc

+1

risolto l'esempio, grazie. Intendevo il contrario, cioè, assegnare un 'String' a un' CharSequence'. –

+1

Sono confuso da questo codice "CharSequence cs =" stringa ";". Come possiamo creare un'istanza di CharSequence? Non è un'interfaccia? (Scusa, sto ancora imparando Java). – Mugen

34

risposta diretta:

String s = "Hello World!"; 

// String => CharSequence conversion: 

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

CharSequence è un'interfaccia, e la classe String implementa CharSequence.

3

È possibile utilizzare

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

Benvenuti in Stack Overflow Lucas. Si prega di fornire più spiegazioni di un frammento di codice. Potrebbe essere ovvio per noi, ma aiutare gli altri a fargli sapere perché questo codice risponde alla domanda. –

+0

Il wrapping di una stringa in una matrice non aiuta a stabilire un punto in cui String è un oggetto CharSequence (e quindi la matrice di CharSequence è una matrice di String). – tishma

+0

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

9

CharSequence è un'interfaccia e stringa è la sua una delle implementazioni diverse StringBuilder, StringBuffer e molti altri.

Così, proprio come si usa InterfaceName i = new ItsImplementation(), è possibile utilizzare CharSequence cs = new String("string") o semplicemente CharSequence cs = "string";

Problemi correlati