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

7voto

torcelly Punkte 516

Swift 3

Der einfachste und sicherste Weg ist:

@IBOutlet var textFieldA  : UITextField
@IBOutlet var textFieldB  : UITextField
@IBOutlet var answerLabel : UILabel

@IBAction func calculate(sender : AnyObject) {

      if let intValueA = Int(textFieldA),
            let intValueB = Int(textFieldB) {
            let result = intValueA + intValueB
            answerLabel.text = "Die Beschleunigung beträgt \(result)"
      }
      else {
             answerLabel.text = "Der Wert \(intValueA) und/oder \(intValueB) ist keine gültige Ganzzahl"
      }        
}

Ungültige Werte vermeiden, indem die Tastatur auf Zahlenblock eingestellt wird:

 textFieldA.keyboardType = .numberPad
 textFieldB.keyboardType = .numberPad

4voto

AliRaza Qureshi Punkte 41

Ich habe ein einfaches Programm erstellt, in dem Sie 2 Textfelder haben, aus denen Sie die Benutzereingabe entnehmen und sie hinzufügen, um es einfacher zu verstehen. Bitte finden Sie unten den Code.

@IBOutlet weak var result: UILabel!
@IBOutlet weak var one: UITextField!
@IBOutlet weak var two: UITextField!

@IBAction func add(sender: AnyObject) {        
    let count = Int(one.text!)
    let cal = Int(two.text!)
    let sum = count! + cal!
    result.text = "Die Summe ist \(sum)"
}

Ich hoffe, das hilft.

4voto

Koushik Punkte 1150

Swift 3.0

Versuchen Sie es, Sie müssen keine Bedingung prüfen, ich habe alles erledigt, verwenden Sie einfach diese Funktion. Senden Sie beliebige Zeichenfolgen, Zahlen, Fließkommazahlen, Doubles usw. Sie erhalten eine Nummer als Wert oder 0, wenn es nicht möglich ist, Ihren Wert zu konvertieren

Funktion:

func getNumber(number: Any?) -> NSNumber {
    guard let statusNumber:NSNumber = number as? NSNumber else
    {
        guard let statString:String = number as? String else
        {
            return 0
        }
        if let myInteger = Int(statString)
        {
            return NSNumber(value:myInteger)
        }
        else{
            return 0
        }
    }
    return statusNumber
}

Verwendung: Fügen Sie die obige Funktion im Code ein und zur Konvertierung verwenden Sie let myNumber = getNumber(number: myString) wenn myString eine Nummer oder Zeichenfolge hat, gibt es die Nummer zurück, ansonsten gibt es 0 zurück

Beispiel 1:

let number:String = "9834"
print("Drucknummer \(getNumber(number: number))")

Ausgabe: Drucknummer 9834

Beispiel 2:

let number:Double = 9834
print("Drucknummer \(getNumber(number: number))")

Ausgabe: Drucknummer 9834

Beispiel 3:

let number = 9834
print("Drucknummer \(getNumber(number: number))")

Ausgabe: Drucknummer 9834

3voto

Neueste swift3 dieser Code dient lediglich dazu, einen String in eine ganze Zahl umzuwandeln

let myString = "556"
let myInt = Int(myString)

3voto

Alessandro Ornano Punkte 33106

Über int() und Swift 2.x: Wenn Sie nach der Konvertierung einen Nil-Wert erhalten, überprüfen Sie, ob Sie versuchen, eine Zeichenfolge mit einer großen Zahl umzuwandeln (zum Beispiel: 1073741824), in diesem Fall versuchen Sie es mit:

let bytesInternet : Int64 = Int64(bytesInternetString)!

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