Kotlin स्ट्रिंग्स को इंटीजर्स में बदलने के कई कुशल तरीके प्रदान करता है। सबसे अच्छा तरीका आपकी त्रुटि-हैंडलिंग प्राथमिकताओं पर निर्भर करता है। यह लेख तीन सामान्य विधियों का पता लगाता है: toInt()
, toIntOrNull()
, और parseInt()
, उनकी ताकत और कमजोरियों को उजागर करता है।
विषयवस्तु की तालिका
toInt()
के साथ स्ट्रिंग्स को इंटीजर्स में बदलनाtoIntOrNull()
के साथ सुरक्षित रूपांतरण- स्ट्रिंग-टू-इंटीजर रूपांतरण के लिए
parseInt()
का उपयोग करना
toInt()
के साथ स्ट्रिंग्स को इंटीजर्स में बदलना
toInt()
विधि एक प्रत्यक्ष तरीका प्रदान करती है। हालाँकि, यदि इनपुट स्ट्रिंग एक मान्य पूर्णांक नहीं है, तो यह NumberFormatException
को फेंकता है। मजबूत त्रुटि हैंडलिंग के लिए इसके लिए try-catch
ब्लॉक की आवश्यकता होती है।
fun stringToInt(str: String): Int {
return try {
str.toInt()
} catch (e: NumberFormatException) {
println("अमान्य इनपुट: $str")
0 // या एक कस्टम अपवाद फेंकें, या कोई अन्य डिफ़ॉल्ट मान लौटाएँ
}
}
fun main() {
val numStr1 = "123"
val numStr2 = "abc"
println("'$numStr1' का रूपांतरण: ${stringToInt(numStr1)}") // आउटपुट: 123
println("'$numStr2' का रूपांतरण: ${stringToInt(numStr2)}") // आउटपुट: अमान्य इनपुट: abc, 0
}
यह उदाहरण दिखाता है कि अपवाद को कैसे प्रबंधित किया जाए। अपने एप्लिकेशन की आवश्यकताओं के अनुसार त्रुटि हैंडलिंग (println
और वापसी मान 0
) को अनुकूलित करना याद रखें।
toIntOrNull()
के साथ सुरक्षित रूपांतरण
toIntOrNull()
एक सुरक्षित विकल्प प्रदान करता है। यदि सफल होता है, तो यह पूर्णांक देता है, या यदि रूपांतरण विफल हो जाता है तो null
देता है। यह try-catch
को समाप्त करता है, जिससे क्लीनर कोड बनता है और अपवाद हैंडलिंग के ओवरहेड से बचा जाता है।
fun stringToIntOrNull(str: String): Int? {
return str.toIntOrNull()
}
fun main() {
val numStr1 = "123"
val numStr2 = "abc"
println("'$numStr1' का रूपांतरण: ${stringToIntOrNull(numStr1)}") // आउटपुट: 123
println("'$numStr2' का रूपांतरण: ${stringToIntOrNull(numStr2)}") // आउटपुट: null
}
val num = stringToIntOrNull("456")
val result = num ?: 0 // रूपांतरण विफल होने पर डिफ़ॉल्ट मान के रूप में 0 का उपयोग करें
println(result) // आउटपुट: 456
val num2 = stringToIntOrNull("xyz")
val result2 = num2 ?: 0
println(result2) // आउटपुट: 0
एल्विस ऑपरेटर (?:
) संभावित null
मान को सुंदर ढंग से संभालता है। यह दृष्टिकोण आम तौर पर इसकी संक्षिप्तता और सुरक्षा के लिए अनुशंसित है।
स्ट्रिंग-टू-इंटीजर रूपांतरण के लिए parseInt()
का उपयोग करना
parseInt()
विधि (java.lang.Integer.parseInt()
) एक अन्य विकल्प प्रदान करती है, लेकिन यह Kotlin में कम मुहावरेदार है। toInt()
की तरह, यह NumberFormatException
को फेंकता है जिसके लिए try-catch
की आवश्यकता होती है। यह आम तौर पर Kotlin की अंतर्निहित विधियों की तुलना में कम पसंद किया जाता है।
fun stringToIntParseInt(str: String): Int {
return try {
Integer.parseInt(str)
} catch (e: NumberFormatException) {
println("अमान्य इनपुट: $str")
0 // या अपवाद को अलग तरह से संभालें
}
}
fun main() {
val numStr1 = "123"
val numStr2 = "abc"
println("'$numStr1' का रूपांतरण: ${stringToIntParseInt(numStr1)}") // आउटपुट: 123
println("'$numStr2' का रूपांतरण: ${stringToIntParseInt(numStr2)}") // आउटपुट: अमान्य इनपुट: abc, 0
}
संक्षेप में, इसकी संक्षिप्तता और नल सुरक्षा के कारण toIntOrNull()
अनुशंसित दृष्टिकोण है। toInt()
का उपयोग केवल तभी करें जब आपको यकीन हो कि इनपुट स्ट्रिंग हमेशा एक मान्य पूर्णांक है और स्पष्ट अपवाद हैंडलिंग को प्राथमिकता दें। parseInt()
से बचें जब तक कि Java विधि का उपयोग करने का कोई प्रेरक कारण न हो। एप्लिकेशन क्रैश को रोकने के लिए हमेशा संभावित त्रुटियों को प्रभावी ढंग से संभालें।