2013-02-08 15 views
16

में मैं List<Object> से String[] में बदलने की जरूरत है।Convert स्ट्रिंग सूची <Object> [] जावा

मैंने बनाया:

List<Object> lst ... 
String arr = lst.toString(); 

लेकिन मैं इस स्ट्रिंग है:

["...", "...", "..."] 

सिर्फ एक स्ट्रिंग है, लेकिन मैं जरूरत String []

धन्यवाद एक बहुत।

+1

आप एक यादृच्छिक ऑब्जेक्ट में स्ट्रिंग को कैसे परिवर्तित करते हैं? – assylias

+0

टूस्ट्रिंग (अधिकांश कक्षाओं में) पूरी तरह से नैदानिक ​​संदेशों के लिए लक्षित है, न कि "उत्पादन"। –

+0

मैं स्ट्रिंग [] में सभी सूची को इसके बिना फिर से परिवर्तित करना चाहता हूं। – calbertts

उत्तर

20

आपको सूची के माध्यम से लूप करना होगा और अपना String[] भरना होगा।

String[] array = new String[lst.size()]; 
int index = 0; 
for (Object value : lst) { 
    array[index] = (String) value; 
    index++; 
} 

सूची String मूल्यों का होगा, सूची तो यह lst.toArray(new String[0]) बुला के रूप में सरल हो सकता है;

+5

'सरणी [अनुक्रमणिका] = (स्ट्रिंग) मान', 'सरणी [अनुक्रमणिका] = String.valueOf (मान)' में बदलें। अगर सूची में कुछ भी शामिल है, लेकिन स्ट्रिंग्स के रूप में इसका जवाब दुर्घटनाग्रस्त हो जाएगा। हो सकता है कि यही ओपी चाहता है। –

+0

Thats मेरे लिए काम करता है। धन्यवाद। – calbertts

+0

आपका स्वागत है। –

14

आप toArray() इस्तेमाल कर सकते हैं this method के बाद वस्तुओं की एक सरणी में परिवर्तित करने के तार की एक सरणी में वस्तुओं की सरणी परिवर्तित करने के लिए:

Object[] objectArray = lst.toArray(); 
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class); 
+0

'ऑब्जेक्टअरे' के दौरान अतिरिक्त सरणी प्रतिलिपि क्यों स्ट्रिंग [] के रूप में उपयोग की जा सकती है? – sundar

+0

लिंक किए गए प्रश्न के निचले हिस्से को देखें - 'ऑब्जेक्टअरे' को 'स्ट्रिंग []' में 'क्लासकास्ट अपवाद' का कारण बनता है। यह उत्तर बेहतर बताता है: http://stackoverflow.com/a/1018774/1063716 –

+0

स्ट्रिंग के अलावा अन्य वस्तुओं वाली सूची के मामले में हाँ। लेकिन यह आपके कोड में भी होता है। – sundar

4

हम बहुत यकीन है कि List<Object> के संग्रह में शामिल होंगे रहे हैं String, तो शायद इसे आजमाएं।

List<Object> lst = new ArrayList<Object>(); 
lst.add("sample"); 
lst.add("simple"); 
String[] arr = lst.toArray(new String[] {}); 
System.out.println(Arrays.deepToString(arr)); 
2

अवधारणाओं के बहुत सारे यहाँ जो उपयोगी हो सकता है:

List<Object> list = new ArrayList<Object>(Arrays.asList(new String[]{"Java","is","cool"})); 
String[] a = new String[list.size()]; 
list.toArray(a); 

टिप स्ट्रिंग्स की सरणी मुद्रित करने के लिए:

System.out.println(Arrays.toString(a)); 
+0

बहुत बहुत धन्यवाद! – calbertts

2

का उपयोग Guava

List<Object> lst ...  
List<String> ls = Lists.transform(lst, Functions.toStringFunction()); 
4

जावा 8 में धाराओं का उपयोग करने का विकल्प है:

List<Object> lst = new ArrayList<>(); 
String[] strings = lst.stream().toArray(String[]::new); 
संबंधित मुद्दे