399 Stimmen

Umrechnen von String in Int mit Swift

Die Anwendung berechnet im Wesentlichen die Beschleunigung, indem sie Anfangs- und Endgeschwindigkeit sowie Zeit eingibt und dann eine Formel zur Berechnung der Beschleunigung verwendet. Da die Werte in den Textfeldern Zeichenketten sind, kann ich sie nicht in Ganzzahlen konvertieren.

@IBOutlet var txtBox1 : UITextField
@IBOutlet var txtBox2 : UITextField
@IBOutlet var txtBox3 : UITextField
@IBOutlet var lblAnswer : UILabel

@IBAction func btn1(sender : AnyObject) {

    let answer1 = "Die Beschleunigung beträgt"
    var answer2 = txtBox1
    var answer3 = txtBox2
    var answer4 = txtBox3

1voto

Naishta Punkte 10822

Dies funktioniert für mich

var a:Int? = Int(userInput.text!)

1voto

Jenny Punkte 45
// Um die Benutzereingabe (d. h. String) in eine Ganzzahl für Berechnungen umzuwandeln. Ich habe dies gemacht und es funktioniert.

    let num:Int? = Int(firstTextField.text!);

    let sum:Int = num!-2

    print(sum);

1voto

DàChún Punkte 4421

Für Swift3.x

extension String {
    func toInt(defaultValue: Int) -> Int {
        if let n = Int(self.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)) {
            return n
        } else {
            return defaultValue
        }
    }
}

0voto

Ravi Kumar Punkte 1319

Frage: Kann der String "4.0000" nicht in eine Ganzzahl umgewandelt werden, indem man Int("4.000") verwendet?

Antwort: Int() überprüft, ob der String eine Ganzzahl ist oder nicht. Wenn ja, gibt er Ihnen die Ganzzahl, andernfalls nil. Aber Float oder Double können jeden Zahlenstring in den entsprechenden Float- oder Double-Wert umwandeln, ohne nil zu geben. Zum Beispiel, wenn Sie den Ganzzahl-String "45" haben, gibt Ihnen Float("45") den Float-Wert 45.0 oder Double("4567") gibt Ihnen 45.0.

Lösung: NSString(string: "45.000").integerValue oder Int(Float("45.000")!)!, um das korrekte Ergebnis zu erhalten.

0voto

Krunal Punkte 73316
@IBAction func calculateAclr(_ sender: Any) {
    if let addition = addition(arrayString: [txtBox1.text, txtBox2.text, txtBox3.text]) {
      print("Antwort = \(addition)")
      lblAnswer.text = "\(addition)"
    }
}

func addition(arrayString: [Any?]) -> Int? {

    var antwort:Int?
    for arrayElement in arrayString {
        if let stringValue = arrayElement, let intValue = Int(stringValue)  {
            antwort = (antwort ?? 0) + intValue
        }
    }

    return antwort
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X