मेरे पास एक चार सरणी है:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
मेरा वर्तमान समाधान करना है
String b = new String(a);
लेकिन निश्चित रूप से ऐसा करने का एक बेहतर तरीका है?
मेरे पास एक चार सरणी है:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
मेरा वर्तमान समाधान करना है
String b = new String(a);
लेकिन निश्चित रूप से ऐसा करने का एक बेहतर तरीका है?
जवाबों:
नहीं, यह समाधान बिल्कुल सही है और बहुत कम है।
हालांकि, ध्यान दें कि यह एक बहुत ही असामान्य स्थिति है: क्योंकि String
विशेष रूप से जावा में संभाला जाता है, यहां तक "foo"
कि वास्तव में ए String
। तो एक स्ट्रिंग को अलग-अलग char
एस में विभाजित करने और उन्हें वापस जोड़ने की आवश्यकता को सामान्य कोड में आवश्यक नहीं है।
इसकी तुलना C / C ++ से करें जहां "foo"
आपके पास char
एक तरफ शून्य बाइट द्वारा समाप्त किए गए एस का एक बंडल है और string
दूसरी तरफ विरासत विधि के कारण उनके बीच कई रूपांतरण हैं।
String text = String.copyValueOf(data);
या
String text = String.valueOf(data);
यकीनन बेहतर है ( new String
कॉल को एनकैप्सुलेट करता है )।
String(char[])
या उस का एक प्रकार है। और कॉपी हिस्सा अंदर किया जाता है String(char[])
। यह अन्य valueOf
विधियों के साथ समरूपता के अलावा प्रत्यक्ष कॉल का कोई लाभ नहीं देता है ।
String
बदल दिया जाएगा और / या असंगत तरीके से बढ़ाया जाएगा या रनिंग के समय कई प्रतिस्पर्धी कार्यान्वयन चुने जा सकते हैं, तो एक स्थिर कारखाना विधि समझ में आती है। ऐसा निम्न स्तर की चीज के साथ नहीं होगा String
। इसलिए मेरा आधार है: सबसे छोटे हथौड़े का उपयोग करें, न कि सबसे बड़ा उपलब्ध।
CharSequence
इंटरफ़ेस बनाने के लिए दिखाया गया था कि आपके "स्ट्रिंग जैसे निम्न स्तर के सामान के साथ अभद्रता " कैसे होती है - वे यह नहीं बदलते हैं कि स्ट्रिंग में क्या होता है क्योंकि उन्होंने खुद को इससे पहले ही बांध लिया था, और अब वे चाहते हैं उनके पास नहीं होगा।
String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();
अब चरित्र सरणी को स्ट्रिंग में बदलने के लिए, दो तरीके हैं।
Arrays.toString(c);
स्ट्रिंग लौटाता है [w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]
।
तथा:
String.valueOf(c)
स्ट्रिंग लौटाता है wwwwww3333dfevvv
।
सारांश में : पर ध्यान दें Arrays.toString(c)
, क्योंकि आप "[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]"
इसके बजाय मिलेंगे "wwwwww3333dfevvv"
।
आप String.valueOf
विधि का उपयोग कर सकते हैं ।
उदाहरण के लिए,
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
String b = String.valueOf(a);
System.out.println("Char Array back to String is: " + b);
स्ट्रिंग के लिए चार सरणी पर अधिक के लिए आप नीचे दिए गए लिंक का उल्लेख कर सकते हैं
https://docs.oracle.com/javase/7/docs/api/java/lang/String.html
https://www.flowerbrackets.com/convert-char-array-to-string-java/
package naresh.java;
public class TestDoubleString {
public static void main(String args[]){
String str="abbcccddef";
char charArray[]=str.toCharArray();
int len=charArray.length;
for(int i=0;i<len;i++){
//if i th one and i+1 th character are same then update the charArray
try{
if(charArray[i]==charArray[i+1]){
charArray[i]='0';
}}
catch(Exception e){
System.out.println("Exception");
}
}//finally printing final character string
for(int k=0;k<charArray.length;k++){
if(charArray[k]!='0'){
System.out.println(charArray[k]);
} }
}
}
//Given Character Array
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
//Converting Character Array to String using String funtion
System.out.println(String.valueOf(a));
//OUTPUT : hello world
जावा 8 स्ट्रीम फ़ंक्शन का उपयोग करके किसी भी दिए गए सरणी प्रकार को स्ट्रिंग में परिवर्तित करना
String stringValue =
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());
इसे इस्तेमाल करे
Arrays.toString(array)
बस नीचे की तरह String.value का उपयोग करें;
private static void h() {
String helloWorld = "helloWorld";
System.out.println(helloWorld);
char [] charArr = helloWorld.toCharArray();
System.out.println(String.valueOf(charArr));
}
आप StringBuilder वर्ग का भी उपयोग कर सकते हैं
String b = new StringBuilder(a).toString();
स्ट्रिंग या StringBuilder का उपयोग आपकी विधि आवश्यकताओं के साथ बदलता रहता है।
1 वैकल्पिक तरीका है:
String b = a + "";
toString
सही तरीके से काम करता है char[]
। यह JVM के कुछ विशिष्ट विक्रेताओं और संस्करणों पर काम कर सकता है।
a
और एक अन्य स्ट्रिंग ऑब्जेक्ट का निर्माण करें जिसके साथ a.toString()
और""