Ich möchte Zeichenfolgen wie "1" oder "32.23" in Ganzzahlen und Doppelte analysieren. Wie kann ich das mit Dart machen?
Sie können eine Zeichenfolge in eine Ganzzahl mit analysieren int.parse()
. Beispielsweise:
var myInt = int.parse('12345');
assert(myInt is int);
print(myInt); // 12345
Beachten Sie, dass Zeichenfolgen mit Präfix int.parse()
akzeptiert werden 0x
. Andernfalls wird die Eingabe als Basis-10 behandelt.
Sie können eine Zeichenfolge mit in ein Double analysieren double.parse()
. Beispielsweise:
var myDouble = double.parse('123.45');
assert(myDouble is double);
print(myDouble); // 123.45
parse()
löst FormatException aus, wenn die Eingabe nicht analysiert werden kann.
In Dart 2 ist int.tryParse verfügbar.
Es gibt null für ungültige Eingaben zurück, anstatt zu werfen. Sie können es so verwenden:
int val = int.tryParse(text) ?? defaultValue;
Gemäß Pfeil 2.6
Der optionale onError
Parameter von int.parse
ist veraltet . Daher sollten Sie int.tryParse
stattdessen verwenden.
Hinweis : Gleiches gilt für double.parse
. Verwenden Sie daher double.tryParse
stattdessen.
/**
* ...
*
* 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)});
Der Unterschied besteht darin , dass die int.tryParse
Renditen , null
wenn die Quellzeichenfolge ist ungültig.
/**
* 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});
In Ihrem Fall sollte es also so aussehen:
// 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 ...
//
}
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 () und double.parse () können einen Fehler auslösen, wenn der String nicht analysiert werden konnte
int.parse()
unddouble.parse()
kann einen Fehler auslösen, wenn der String nicht analysiert werden konnte. Bitte erläutern Sie Ihre Antwort, damit andere Dart besser lernen und verstehen können.