मैं डार्ट के साथ एक संख्या में स्ट्रिंग को पार्स कैसे कर सकता हूं?


105

मैं "1" या "32.23" जैसे तार को पूर्णांक और युगल में पार्स करना चाहूंगा। मैं डार्ट के साथ यह कैसे कर सकता हूं?

जवाबों:


175

आप किसी स्ट्रिंग को पूर्णांक में पार्स कर सकते हैं int.parse()। उदाहरण के लिए:

var myInt = int.parse('12345');
assert(myInt is int);
print(myInt); // 12345

ध्यान दें कि उपसर्गों को int.parse()स्वीकार करता है 0x। अन्यथा इनपुट को बेस -10 माना जाता है।

आप एक स्ट्रिंग को एक डबल में पार्स कर सकते हैं double.parse()। उदाहरण के लिए:

var myDouble = double.parse('123.45');
assert(myDouble is double);
print(myDouble); // 123.45

parse() यदि यह इनपुट को पार्स नहीं कर सकता तो FormatException को फेंक देगा।


आपको एक स्ट्रिंग से पूर्णांक को कैसे पार्स करना चाहिए जिसमें बाद में अमान्य वर्ण हैं? जैसे, "-01: 00", जहां मैं -1 प्राप्त करना चाहता हूं, या "172 सेब" जहां मैं 172 पाने की उम्मीद करूंगा। जावास्क्रिप्ट में parseInt ("- 01:00") ठीक काम करता है, लेकिन डार्ट एक त्रुटि देता है। क्या मैन्युअल चरित्र-चरित्र की जाँच के बिना कोई आसान तरीका है? धन्यवाद।
14:15 पर user1596274

86

Dart में 2 int.tryParse उपलब्ध है।

यह फेंकने के बजाय अमान्य इनपुट के लिए शून्य देता है। आप इसे इस तरह से उपयोग कर सकते हैं:

int val = int.tryParse(text) ?? defaultValue;

4

डार्ट 2.6 के अनुसार

वैकल्पिक onErrorका पैरामीटर int.parseहै पदावनत । इसलिए, आपको int.tryParseइसके बजाय उपयोग करना चाहिए ।

नोट : वही लागू होता है double.parse। इसलिए, double.tryParseइसके बजाय का उपयोग करें ।

  /**
   * ...
   *
   * The [onError] parameter is deprecated and will be removed.
   * Instead of `int.parse(string, onError: (string) => ...)`,
   * you should use `int.tryParse(string) ?? (...)`.
   *
   * ...
   */
  external static int parse(String source, {int radix, @deprecated int onError(String source)});

अंतर यह है कि यदि स्रोत स्ट्रिंग अमान्य है, तो int.tryParseरिटर्न null

  /**
   * Parse [source] as a, possibly signed, integer literal and return its value.
   *
   * Like [parse] except that this function returns `null` where a
   * similar call to [parse] would throw a [FormatException],
   * and the [source] must still not be `null`.
   */
  external static int tryParse(String source, {int radix});

तो, आपके मामले में यह दिखना चाहिए:

// Valid source value
int parsedValue1 = int.tryParse('12345');
print(parsedValue1); // 12345

// Error handling
int parsedValue2 = int.tryParse('');
if (parsedValue2 == null) {
  print(parsedValue2); // null
  //
  // handle the error here ...
  //
}

3
 void main(){
  var x = "4";
  int number = int.parse(x);//STRING to INT

  var y = "4.6";
  double doubleNum = double.parse(y);//STRING to DOUBLE

  var z = 55;
  String myStr = z.toString();//INT to STRING
}

int.parse () और double.parse () स्ट्रिंग को पार्स नहीं कर सकने पर एक त्रुटि फेंक सकता है


2
int.parse()और double.parse()एक त्रुटि फेंक सकता है जब यह स्ट्रिंग को पार्स नहीं कर सकता। कृपया अपने उत्तर के बारे में विस्तार से बताएं ताकि अन्य लोग डार्ट को बेहतर ढंग से जान और समझ सकें।
josxha

1
थैंक्स-टू इट जसक्शा, मैं डार्ट में एक पूर्ण शुरुआत हूं और मैं दूसरों की मदद करने की पूरी कोशिश कर रहा हूं, वैसे मुझे लगा कि यह सबसे सरल उत्तर होगा, वैसे भी धन्यवाद !!
राजदीप12345678910

0

आप स्ट्रिंग को पार्स कर सकते हैं int.parse('your string value');

उदाहरण:- int num = int.parse('110011'); print(num); \\ prints 110011 ;

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.