Int、long、doubleなどの型を文字列に変換できる形式の文字列を作成する必要があります。 Obj-Cを使用して、私は以下の方法でそれをすることができます。
NSString *str = [NSString stringWithFormat:@"%d , %f, %ld, %@", INT_VALUE, FLOAT_VALUE, DOUBLE_VALUE, STRING_VALUE];
迅速で同じことをするには?
私はこれがあなたを助けることができると思います:
let timeNow = time(nil)
let aStr = String(format: "%@%x", "timeNow in hex: ", timeNow)
print(aStr)
結果の例:
timeNow in hex: 5cdc9c8d
特にない
let str = NSString(format:"%d , %f, %ld, %@", INT_VALUE, FLOAT_VALUE, LONG_VALUE, STRING_VALUE)
let str = "\(INT_VALUE), \(FLOAT_VALUE), \(DOUBLE_VALUE), \(STRING_VALUE)"
更新:SwiftがString(format:)
をAPIに追加する前にこの回答を書きました。 上の答え で与えられた方法を使ってください。
NSString
は必要ありません。
String(format: "Value: %3.2f\tResult: %3.2f", arguments: [2.7, 99.8])
または
String(format:"Value: %3.2f\tResult: %3.2f", 2.7, 99.8)
私はその両方を主張するでしょう
let str = String(format:"%d, %f, %ld", INT_VALUE, FLOAT_VALUE, DOUBLE_VALUE)
そして
let str = "\(INT_VALUE), \(FLOAT_VALUE), \(DOUBLE_VALUE)"
ユーザーがフォーマットについて尋ねたので両方とも許容可能であり、どちらの場合も彼らが求めているものに適合します。
Int、long、doubleなどの型を文字列に変換できる形式の文字列を作成する必要があります。
明らかに前者は後者よりもフォーマットを細かく制御できますが、それは後者が許容できる答えではないという意味ではありません。
var str = "\(INT_VALUE) , \(FLOAT_VALUE) , \(DOUBLE_VALUE), \(STRING_VALUE)"
最初に読む Swift言語の公式文書
答えは
var str = "\(INT_VALUE) , \(FLOAT_VALUE) , \(DOUBLE_VALUE), \(STRING_VALUE)"
println(str)
ここに
1)デフォルトの浮動小数点値double
EX.
var myVal = 5.2 // its double by default;
- >浮動小数点値を表示したい場合は、次のように明示的に定義する必要があります。
EX.
var myVal:Float = 5.2 // now its float value;
これはもっと明確です。
この出版以来、多くの時間が経過したことを私は知っていますが、私は同じような状況に陥り、私の人生を簡素化するためにsimplesクラスを作成しました。
public struct StringMaskFormatter {
public var pattern : String = ""
public var replecementChar : Character = "*"
public var allowNumbers : Bool = true
public var allowText : Bool = false
public init(pattern:String, replecementChar:Character="*", allowNumbers:Bool=true, allowText:Bool=true)
{
self.pattern = pattern
self.replecementChar = replecementChar
self.allowNumbers = allowNumbers
self.allowText = allowText
}
private func prepareString(string:String) -> String {
var charSet : NSCharacterSet!
if allowText && allowNumbers {
charSet = NSCharacterSet.alphanumericCharacterSet().invertedSet
}
else if allowText {
charSet = NSCharacterSet.letterCharacterSet().invertedSet
}
else if allowNumbers {
charSet = NSCharacterSet.decimalDigitCharacterSet().invertedSet
}
let result = string.componentsSeparatedByCharactersInSet(charSet)
return result.joinWithSeparator("")
}
public func createFormattedStringFrom(text:String) -> String
{
var resultString = ""
if text.characters.count > 0 && pattern.characters.count > 0
{
var finalText = ""
var stop = false
let tempString = prepareString(text)
var formatIndex = pattern.startIndex
var tempIndex = tempString.startIndex
while !stop
{
let formattingPatternRange = formatIndex ..< formatIndex.advancedBy(1)
if pattern.substringWithRange(formattingPatternRange) != String(replecementChar) {
finalText = finalText.stringByAppendingString(pattern.substringWithRange(formattingPatternRange))
}
else if tempString.characters.count > 0 {
let pureStringRange = tempIndex ..< tempIndex.advancedBy(1)
finalText = finalText.stringByAppendingString(tempString.substringWithRange(pureStringRange))
tempIndex = tempIndex.advancedBy(1)
}
formatIndex = formatIndex.advancedBy(1)
if formatIndex >= pattern.endIndex || tempIndex >= tempString.endIndex {
stop = true
}
resultString = finalText
}
}
return resultString
}
}
フォローリンクをクリックすると、完全なソースコードに送信できます。 https://Gist.github.com/dedeexe/d9a43894081317e7c418b96d1d081b25
この解決策はこの記事の基になっていました: http://vojtastavik.com/2015/03/29/real-time-formatting-in-uitextfield-Swift-basics/
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);
あなたが import Foundation を使用できない、または round() を使用できない、または String を使用したくない場合、私は "We <3 Swift"で学んだ簡単な解決策があります。
var number = 31.726354765
var intNumber = Int(number * 1000.0)
var roundedNumber = Double(intNumber) / 1000.0
結果:31.726
次のコードを使用してください。
let intVal=56
let floatval:Double=56.897898
let doubleValue=89.0
let explicitDaouble:Double=89.56
let stringValue:"Hello"
let stringValue="String:\(stringValue) Integer:\(intVal) Float:\(floatval) Double:\(doubleValue) ExplicitDouble:\(explicitDaouble) "