String to CharSequence कैसे कन्वर्ट करें?


265

कैसे कन्वर्ट करने के लिए Stringकरने के लिए CharSequenceजावा में?


16
सवाल एक तरह का गैर-संवेदी है। स्ट्रिंग को एक चरस में बदलना एक बांसुरी को संगीत वाद्ययंत्र में परिवर्तित करने जैसा है। एक स्ट्रिंग पहले से ही एक CharSequence है। स्ट्रिंग क्लास चारसेंसेंस इंटरफ़ेस लागू करता है।
जेफ स्कॉट ब्राउन

3
ओपी की उलझन यह जानने के लिए नहीं हो सकती है कि इसे एक इंटरफ़ेस
Raedwald

9
@JeffScottBrown सवाल वास्तव में समझ में आता है, यह एंड्रॉइड या जावा डॉक के माध्यम से पढ़ने वाले किसी व्यक्ति के लिए एक वैध आश्चर्य है और इस विवरण को गायब करना कि CharSequence एक वर्ग नहीं है। आपकी टिप्पणी ने मेरी मदद की, लेकिन यदि प्रश्न इस तरह से नहीं किया गया है, तो मैंने इसे नहीं पाया है और इसका जवाब
खोजने के

मैं इस सवाल पर एक समस्या के संदर्भ में आया था समस्या: Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
BlackEye

यहां बताया गया है कि मैं अपनी टिप्पणी को फिर से जारी करने के लिए @JeffScottBrown की सलाह दूंगा- "स्ट्रिंग क्लास का इम्प्रूवमेंट (IS-A) CharSequence इंटरफ़ेस, ताकि आप एक CharSequence के स्थान पर String में पास कर सकें। यह ऐसा है जैसे आप किसी बांसुरी को कैसे संदर्भित कर सकते हैं। संगीत वाद्ययंत्र क्योंकि एक बांसुरी IS-A संगीत वाद्य है "
विघ्नेश

जवाबों:


261

String IS-A के बाद से CharSequence, आपको Stringजहां भी जरूरत हो, पास कर सकते हैं CharSequenceया a Stringको असाइन कर सकते हैं CharSequence:

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

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

यदि आप a CharSequenceको a में परिवर्तित करना चाहते हैं String, तो बस उस toStringविधि का उपयोग करें जिसे प्रत्येक ठोस कार्यान्वयन द्वारा कार्यान्वित किया जाना चाहिए CharSequence

आशा करता हूँ की ये काम करेगा।


13
सिवाय इसके कि आप CharSequenceएक Stringबिना किसी स्पष्ट कास्ट के असाइन नहीं कर सकते ।
gustafc

1
उदाहरण तय किया, धन्यवाद। मेरा मतलब दूसरे तरीके से था, अर्थात, a Stringको असाइन करें CharSequence
जोहो सिल्वा

4
तुम सही हो। यह वास्तव में एक इंटरफ़ेस है। हालाँकि, वह कोड तत्काल नहीं है CharSequence। यह केवल Stringएक CharSequenceचर का उदाहरण देता है , और चूंकि इंटरफ़ेस Stringलागू करता CharSequenceहै, कोड काम करता है।
जोआ सिल्वा

5
इसका जवाब नहीं है। प्रश्न स्ट्रिंग है -> से -> चारसामान्यता। उत्तर रिवर्स है।
21:39 पर ट्रेंटो

3
यह दोनों का जवाब देता है। पोस्टर पहले तिरछे तरीके से स्ट्रिंग -> चारसेंसेंस समस्या का समाधान करता है, यह समझाकर कि स्ट्रिंग एक चारसेन्सेंस है। फिर पोस्टर जवाब देता है कि चरस से स्ट्रिंग तक कैसे जाना है।
एलेक्स ए।

62

सीधा उत्तर:

String s = "Hello World!";

// String => CharSequence conversion:

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

CharSequenceएक इंटरफ़ेस है, और Stringक्लास लागू करता है CharSequence


13

CharSequence एक इंटरफ़ेस है और StringBuilder, StringBuffer और कई अन्य के अलावा String इसका कार्यान्वयन है।

इसलिए, जैसा आप उपयोग करते हैं InterfaceName i = new ItsImplementation(), आप उपयोग कर सकते हैं CharSequence cs = new String("string")या बसCharSequence cs = "string";


3

आप उपयोग कर सकते हैं

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

8
ढेर अतिप्रवाह लुकास में आपका स्वागत है। कृपया कोड स्निपेट की तुलना में अधिक स्पष्टीकरण प्रदान करें। यह हमारे लिए स्पष्ट हो सकता है, लेकिन दूसरों को यह बताने में मदद करें कि यह कोड प्रश्न का उत्तर क्यों देता है।
१०:१४ पर जीन-रेमी रेवी सेप

एक स्ट्रिंग को एक सरणी में लपेटने से एक बिंदु बनाने में मदद नहीं मिलती है कि स्ट्रिंग एक चारसेंसेंस है (और इसलिए कि चारसैंस की सरणी स्ट्रिंग की सरणी है)।
Tishma

1
CharSequence [] cs = नया CharSequence [] {"String to CharSequence"};
एवेज़ राज

1

अपनी परेशानी पोस्ट करके ओपी के प्रश्न के लिए कुछ (संभव) संदर्भ प्रदान करने का प्रयास कर रहा हूं। मैं स्काला में काम कर रहा हूं, लेकिन त्रुटि संदेश मुझे सभी संदर्भ जावा प्रकार मिल रहे हैं, और त्रुटि संदेश कंपाइलर की तरह बहुत कुछ पढ़ता है जो शिकायत करता है कि CharSequence एक स्ट्रिंग नहीं है। मैंने स्रोत कोड में पुष्टि की है कि स्ट्रिंग CharSequence इंटरफ़ेस को लागू करता है, लेकिन त्रुटि संदेश स्ट्रिंग और CharSequence के बीच अंतर पर ध्यान आकर्षित करता है, जबकि मुसीबत के वास्तविक स्रोत को छुपाता है:

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)

मैं इस समस्या को इस अहसास के साथ ठीक करने में सक्षम था कि समस्या स्ट्रिंग / चरित्रहीनता नहीं थी, बल्कि java.lang.Iterable और स्काला के अंतर्निहित Iterable के बीच एक बेमेल थी।

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

मेरी विशेष समस्या को स्कैला के उत्तरों के माध्यम से भी हल किया जा सकता है : तार के पुनरावृत्ति में शामिल हों

सारांश में, ओपी और अन्य जो समान समस्याओं के साथ आते हैं, उन्हें त्रुटि संदेशों को बहुत बारीकी से पार्स करना चाहिए और देखना चाहिए कि अन्य प्रकार के रूपांतरण क्या हो सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.