2009-09-08 18 views
204

Nasıl String dönüştürmek için CharSequence Java içinde Java?Dize ile CharSequence nasıl dönüştürülür?

+12

soru olmayan sensical türüdür kullanabilirsiniz. Bir Dizeyi CharSequence'a dönüştürmek, bir flütün bir müzik enstrümana dönüştürülmesi gibidir. Bir Dize zaten bir CharSequence. String sınıfı CharSequence arabirimini uygular. –

+2

OP'in karışıklığı [bir araca programlamanın ne anlama geldiğini bilmemekten kaynaklanabilir (http://stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface) – Raedwald

+7

@JeffScottBu soru gerçekten mantıklı, bu Android veya Java doc aracılığıyla okumak ve CharSequence bir sınıf değil detayını eksik herkes için yasal bir harikası. Yorumunuz bana yardımcı oldu, ancak soru şu şekilde ifade edilmemiş olsaydı, bunu bulmazdım ve gerçekten de daha fazla bir cevap aramak için daha fazla zaman harcamış olsaydım;) – Kheldar

cevap

235

String yana IS-ACharSequence, size bir CharSequence gereken yere bir String geçmesi veya atayabilirsiniz bir StringCharSequence a:

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

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

Bir CharSequenceString bir dönüştürmek istiyorsanız, Sadece CharSequence'un her somut uygulaması tarafından uygulanması gereken toString yöntemini kullanın.

Yardım edin.

+13

" Hariç bir argümanı olmayan bir "String" a atayamazsın hariç. – gustafc

+1

Örnek düzeltildi, teşekkürler. Ben başka bir yol kastettim, yani 'String' bir 'CharSequence 'a atadım. –

+1

Bu kod "CharSequence cs =" string ";" ile karıştırıldım. Bir CharSequence'ı nasıl oluşturabiliriz? Bu bir arayüz değil mi? (Üzgünüm hala Java öğreniyorum). – Mugen

34

Düz cevap:

String s = "Hello World!"; 

// String => CharSequence conversion: 

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

CharSequence bir arayüz olduğunu ve String sınıf CharSequence uygular.

3

Sen

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

Yığın Taşması Lucas'a Hoş Geldiniz. Lütfen kod snippet'inden daha fazla açıklama sağlayın. Bu bizim için açık olabilir, ancak başkalarının bu kodun soruyu neden cevapladığını onlara bildirmelerine yardımcı olabilir. –

+0

Dizeye bir dizeyi sarmak, Dizenin bir CharSequence (ve dolayısıyla CharSequence dizisinin Dize dizisidir) olduğunu belirlemeye yardımcı olmaz. – tishma

+0

CharSequence [] cs = yeni CharSequence [] {"CharSequence için Dize"}; –

9

CharSequence bir arayüz kullanabilir ve Dize StringBuilder, StringBuffer ve diğer birçok dışındaki uygulamaların onun biridir. Eğer InterfaceName i = new ItsImplementation() kullandıkça

Yani, sadece, sen CharSequence cs = new String("string") veya basitçe CharSequence cs = "string";

İlgili konular