2017-08-22 14 views
7

कोटलिन में कई शॉर्टेंड और रोचक विशेषताएं हैं। तो, मुझे आश्चर्य है कि स्ट्रिंग की सरणी को पूर्णांक की सरणी में परिवर्तित करने का कुछ तेज़ और छोटा तरीका है। अजगर में इस कोड के समान:कोटलिन में स्ट्रिंग सरणी से इंट सरणी को कैसे परिवर्तित करें?

results = [int(i) for i in results] 

उत्तर

14

आप .toInt() या .toIntOrNull() साथ .map { ... } उपयोग कर सकते हैं:

val result = strings.map { it.toInt() } 

केवल परिणाम एक सरणी लेकिन एक सूची नहीं है। गैर प्रदर्शन-महत्वपूर्ण कोड में सरणी पर सूचियों का उपयोग करना बेहतर है, the differences देखें।

यदि आपको किसी सरणी की आवश्यकता है, तो .toTypedArray() या .toIntArray() जोड़ें।

1

मैं वैकल्पिक रूप से कुछ

val strings = arrayOf("1", "2", "3") 
val ints = ints.map { it.toInt() }.toTypedArray() 

की तरह साधारण प्रयोग करेंगे, अगर आप एक्सटेंशन में कर रहे हैं:

fun Array<String>.asInts() = this.map { it.toInt() }.toTypedArray() 

strings.asInts() 
1

आप (एक List संरचना कि RandomAccess लागू करता है परिवर्तित करने के लिए की तरह ArrayList की कोशिश कर रहे हैं, तो या Array), आप बेहतर प्रदर्शन के लिए इस संस्करण का उपयोग कर सकते हैं:

IntArray(strings.size) { strings[it].toInt() } 

इस संस्करण के लिए एक बुनियादी करने के लिए संकलित किया गया है पाश और int[]:

int size = strings.size(); 
int[] result = new int[size]; 
int index = 0; 

for(int newLength = result.length; index < newLength; ++index) { 
    String numberRaw = strings.get(index); 
    int parsedNumber = Integer.parseInt(numberRaw); 
    result[index] = parsedNumber; 
} 
संबंधित मुद्दे