2009-09-08 17 views
204

Jak przekonwertować String na CharSequence w Javie?Jak przekonwertować ciąg na CharSequence?

+12

Pytanie niby nie sensical. Konwertowanie ciągu na CharSequence jest jak konwertowanie fletu na instrument muzyczny. Ciąg jest już CharSequence. Klasa String implementuje interfejs CharSequence. –

+2

Zamieszanie OP może wynikać z niewiedzy co to znaczy [programować do interfejsu] (http://stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface) – Raedwald

+7

@JeffScottBrown pytanie ma sens, jest to uzasadnione dla każdego, kto czyta dokumentację w systemie Android lub Java i brakuje informacji, że CharSequence nie jest klasą. Twój komentarz pomógł mi, ale gdyby pytanie nie było sformułowane w taki sposób, nie znalazłbym go i poświęciłem więcej czasu na szukanie odpowiedzi, niż jest to naprawdę warte;) – Kheldar

Odpowiedz

235

Od StringIS-ACharSequence, można zdać String gdzie trzeba CharSequence, lub przypisać String Do CharSequence:

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

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

Jeśli chcesz przekonwertować CharSequence Do String, po prostu użyj metody toString, którą należy wdrożyć przy każdej konkretnej implementacji CharSequence.

Mam nadzieję, że to pomaga.

+13

Z tym, że nie można przypisać' CharSequence' do 'String' bez wyraźnej obsady. – gustafc

+1

Naprawiono przykład, dzięki. Miałem na myśli odwrotnie, tj. Przypisać 'String' do' CharSequence'. –

+1

Jestem zdezorientowany tym kodem "CharSequence cs =" string ";". Jak możemy utworzyć instancję CharSequence? Czy to nie jest interfejs? (Przepraszam, wciąż uczę się języka Java). – Mugen

34

odpowiedź prosta:

String s = "Hello World!"; 

// String => CharSequence conversion: 

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

CharSequence jest interfejsem, a klasa String realizuje CharSequence.

3

Można użyć

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

Witamy w Stack Overflow Lucas. Podaj więcej wyjaśnień niż fragment kodu. Może to być dla nas oczywiste, ale pomóżmy innym, dając im znać, dlaczego ten kod odpowiada na pytanie. –

+0

Zawijanie łańcucha znaków do tablicy nie pomaga w stworzeniu punktu, w którym String jest CharSequence (a zatem tablica CharSequence jest tablicą ciągu). – tishma

+0

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

9

CharSequence jest interfejsem i String jest jego jednym z wdrożeń innych niż StringBuilder, StringBuffer i wiele innych.

Tak, tylko jak użyć InterfaceName i = new ItsImplementation(), można użyć CharSequence cs = new String("string") lub po prostu CharSequence cs = "string";

Powiązane problemy