"1" veya "32.23" gibi dizeleri tam sayılara ve çiftlere ayrıştırmak istiyorum. Bunu Dart ile nasıl yapabilirim?
Yanıtlar:
İle bir dizeyi tam sayıya ayrıştırabilirsiniz int.parse(). Örneğin:
var myInt = int.parse('12345');
assert(myInt is int);
print(myInt); // 12345
Önekli dizeleri int.parse()kabul ettiğini unutmayın 0x. Aksi takdirde, giriş 10 baz olarak kabul edilir.
İle bir dizeyi çift olarak ayrıştırabilirsiniz double.parse(). Örneğin:
var myDouble = double.parse('123.45');
assert(myDouble is double);
print(myDouble); // 123.45
parse() girdiyi ayrıştıramazsa FormatException atacaktır.
Dart 2'de int.tryParse mevcuttur.
Atmak yerine geçersiz girdiler için null döndürür. Bunu şu şekilde kullanabilirsiniz:
int val = int.tryParse(text) ?? defaultValue;
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 () ve double.parse (), String'i ayrıştıramadığında bir hata atabilir
int.parse()ve double.parse()String'i ayrıştıramadığında bir hata atabilir. Başkalarının dartı daha iyi öğrenip anlayabilmesi için lütfen cevabınızı detaylandırın.
dizeyi ile ayrıştırabilirsiniz int.parse('your string value');.
Misal:- int num = int.parse('110011'); print(num); // prints 110011 ;
Dart 2.6'ya göre
İsteğe bağlı onErrorparametre int.parseolduğu kaldırıldı . Bu nedenle, int.tryParsebunun yerine kullanmalısınız .
Not : Aynısı için de geçerlidir double.parse. Bu nedenle, double.tryParsebunun yerine kullanın.
/**
* ...
*
* 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)});
Aradaki fark, kaynak dizenin geçersiz olması durumunda int.tryParsedöndürülmesidir 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});
Yani, senin durumunda şöyle görünmeli:
// 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 ...
//
}