私はintを持っています。例えば45と言います。この整数からNSStringを4つのゼロで埋めたいと思っています。結果は@"0045"
となります。同様に、intが9の場合、私は取得したい:@"0009"
。NSStringの数値を埋め込む
私は桁数を数えることができると知っています。それから詰め込みたい零点の数から減算し、その数を文字列の前に追加しますが、よりエレガントな方法がありますか?ありがとう。
私はintを持っています。例えば45と言います。この整数からNSStringを4つのゼロで埋めたいと思っています。結果は@"0045"
となります。同様に、intが9の場合、私は取得したい:@"0009"
。NSStringの数値を埋め込む
私は桁数を数えることができると知っています。それから詰め込みたい零点の数から減算し、その数を文字列の前に追加しますが、よりエレガントな方法がありますか?ありがとう。
これを試してみてください:
NSLog(@"%04d", 45);
NSLog(@"%04d", 9);
を、それが動作する場合、あなたは任意の番号を持っているしたい場合は、あなたが持っていると思います
、あなたは
NSString *paddedNumber = [NSString stringWithFormat:@"%04d", 45];
NSString *otherPaddedNumber = [NSString stringWithFormat:@"%04d", 9];
アップデートで追加された数字を得ることができますフォーマットのフォーマットを作成する:
// create "%04d" format string
NSString *paddingFormat = [NSString stringWithFormat:@"%%0%dd", 4];
// use it for padding numbers
NSString *paddedNumber = [NSString stringWithFormat:paddingFormat, 45];
NSString *otherPaddedNumber = [NSString stringWithFormat:paddingFormat, 9];
アップデート2
方法のNSLogとパッド数を適切に上Ibmuraiさんのコメント@を参照してください。
私はすでに受け入れられている回答でこの質問に答えることはできませんが、回答は(更新中)ではなく、が最適です。
あなたはIEEE printfがこれをサポートしているとして、あなたが、あなたのフォーマットの形式を作成する必要はありません任意の番号を持っているしたい場合。代わりに行います。
NSString *paddedNumber = [NSString stringWithFormat:@"%0*d", 4, 45];
NSString *otherPaddedNumber = [NSString stringWithFormat:@"%0*d", 4, 9];
他のソリューションが動作しますが、それはあまり効果的でエレガントです。 IEEEのprintf仕様から
:
フィールド幅、または精度、またはその両方は、アスタリスク( '*')で示されてもよいです。この場合、int型の引数はフィールドの幅または精度を提供します。 Int拡張として
スウィフトバージョン(1つのかもしれないがたいが、その方法のためのより良い名前を思い付く):
extension Int
{
func zeroPaddedStringValueForFieldWidth(fieldWidth: Int) -> String
{
return String(format: "%0*d", fieldWidth, self)
}
}
例:
print(45.zeroPaddedStringValueForFieldWidth(4)) // prints "0045"
print(9.zeroPaddedStringValueForFieldWidth(4)) // prints "0009"
迅速な応答をありがとう。これは完全に動作しますが、どのように任意の数値を指定できますか?私は試してみました:NSLog(@ "%0%id"、4、45);しかし、これは動作しません。再度、感謝します。 – RungaDeMungoezz
私は自分の答えを更新しました – Eimantas
ありがとう!あなたは私の命を救いました。 – RungaDeMungoezz