How to create a string with format?

后端 未结 12 1315
别跟我提以往
别跟我提以往 2020-11-30 18:13

I need to create a string with format which can convert int, long, double etc. types into string. Using Obj-C, I can do it via below way.

NSString *str = [NS         


        
相关标签:
12条回答
  • 2020-11-30 18:51
    let INT_VALUE=80
    let FLOAT_VALUE:Double= 80.9999
    let doubleValue=65.0
    let DOUBLE_VALUE:Double= 65.56
    let STRING_VALUE="Hello"
    
    let str = NSString(format:"%d , %f, %ld, %@", INT_VALUE, FLOAT_VALUE, DOUBLE_VALUE, STRING_VALUE);
     println(str);
    
    0 讨论(0)
  • 2020-11-30 18:52

    Success to try it:

     var letters:NSString = "abcdefghijkl"
            var strRendom = NSMutableString.stringWithCapacity(strlength)
            for var i=0; i<strlength; i++ {
                let rndString = Int(arc4random() % 12)
                //let strlk = NSString(format: <#NSString#>, <#CVarArg[]#>)
                let strlk = NSString(format: "%c", letters.characterAtIndex(rndString))
                strRendom.appendString(String(strlk))
            }
    
    0 讨论(0)
  • 2020-11-30 18:55

    nothing special

    let str = NSString(format:"%d , %f, %ld, %@", INT_VALUE, FLOAT_VALUE, LONG_VALUE, STRING_VALUE)
    
    0 讨论(0)
  • 2020-11-30 19:01

    First read Official documentation for Swift language.

    Answer should be

    var str = "\(INT_VALUE) , \(FLOAT_VALUE) , \(DOUBLE_VALUE), \(STRING_VALUE)"
    println(str)
    

    Here

    1) Any floating point value by default double

    EX.
     var myVal = 5.2 // its double by default;
    

    -> If you want to display floating point value then you need to explicitly define such like a

     EX.
         var myVal:Float = 5.2 // now its float value;
    

    This is far more clear.

    0 讨论(0)
  • 2020-11-30 19:01

    There is a simple solution I learned with "We <3 Swift" if you can't either import Foundation, use round() and/or does not want a String:

    var number = 31.726354765
    var intNumber = Int(number * 1000.0)
    var roundedNumber = Double(intNumber) / 1000.0
    

    result: 31.726

    0 讨论(0)
  • 2020-11-30 19:06

    I would argue that both

    let str = String(format:"%d, %f, %ld", INT_VALUE, FLOAT_VALUE, DOUBLE_VALUE)
    

    and

    let str = "\(INT_VALUE), \(FLOAT_VALUE), \(DOUBLE_VALUE)"
    

    are both acceptable since the user asked about formatting and both cases fit what they are asking for:

    I need to create a string with format which can convert int, long, double etc. types into string.

    Obviously the former allows finer control over the formatting than the latter, but that does not mean the latter is not an acceptable answer.

    0 讨论(0)
提交回复
热议问题