2013-02-25 99 views
6

मैं इस समस्या पर फंस गया हूं (जीयूआई को कुंजी भेज रहा हूं) जहां मैं एक स्ट्रिंग को एक वर्ण सरणी में परिवर्तित कर रहा हूं, तो मैं चरित्र को सरणी सूची के रूप में चाहता हूं। मूलतः:अक्षरों की सरणी सूची में वर्णों की सरणी को परिवर्तित करना

String s = "ABC"; 
char[] cArray = s.toCharArray(); 
ArrayList<Character> cList = ?? 

मैं cList रूप ['A', 'B', 'C'] के एक चरित्र ArrayList होना चाहता हूँ। मुझे नहीं पता कि इसे कैसे खोलें और फिर इसमें से एक ऐरेलिस्ट बनाएं। Arrays.asList() returns a List<char[]> जो मैं नहीं चाहता या जरूरत नहीं है।

मुझे पता है कि मैं लूप कर सकता हूं और एक सूची में जोड़ सकता हूं, मैं कुछ आसान ढूंढ रहा हूं (निश्चित रूप से एक मौजूद है)।

उत्तर

3

मेरे ज्ञान के लिए, यह मूल जेडीके में मौजूद नहीं है, लेकिन कार्यक्षमता कई आम पुस्तकालयों द्वारा प्रदान की जाती है।

उदाहरण के लिए, Apache Commons लैंग ArrayUtils में निम्नलिखित हस्ताक्षर के साथ एक विधि है:

public static List<Character> asList(char... backingArray) 
+1

जबकि @ बेश गुरुंग का एक सहायक उत्तर था, मैं अधिक प्रत्यक्ष विधि की तलाश में था, इसे मेरे उत्तर के रूप में स्वीकार करूँगा (और Google Guava इंस्टॉल करने के लिए)। – arynaq

7

आप सरणी के माध्यम से पाश के लिए है:

List<Character> cList = new ArrayList<Character>(); 
for(char c : cArray) { 
    cList.add(c); 
} 

नोट: Arrays.asList() केवल संदर्भ नहीं प्रकार पुरातन के लिए काम करता है।

+0

मुझे पूरा यकीन है कि यह primobives autobox होगा। जब तक आप प्रदर्शन के बारे में चिंतित न हों, मुझे इसका उपयोग न करने का कोई कारण नहीं दिखता है। – Aurand

+1

@Aurand, वास्तव में नहीं। 'Arrays.asList (नया char [] {'a', 'b', 'c'}) 'वास्तव में केवल एक तत्व के साथ' सूची 'देता है:' ए ',' बी 'और' सी 'वाला सरणी, तीन वस्तुओं के साथ 'सूची' नहीं, जैसा कि किसी की उम्मीद होगी। – danidemi

2
:

Character [] toObject(char [] input) 

इसी प्रकार, Google अमरूद पुस्तकालय वर्ण कक्षा में एक और भी अधिक प्रत्यक्ष विधि है

Character[] chArray = {'n','a','n','d','a','n','k','a','n','a','n'}; 

List<Character> arrList = Arrays.asList(chArray);