Qtをメインに、プログラムやITに関する情報を発信

Qtの戯言

QString

数値をゼロパディング(ゼロ埋め)してQStringに変換する

投稿日:

例えば1~100の数値を、
001、002、003、・・・100という文字列にした場合とか。

for (int i = 1; i <= 1000; i *= 10) {
    qDebug() << QString::number(i).rightJustified(3, '0');
}

for (int i = 1; i <= 1000; i *= 10) {
    qDebug() << QString::number(i).rightJustified(3, '0', true);
}
"001"
"010"
"100"
"1000"
"001"
"010"
"100"
"100"

 

第三引数(デフォルト=false)の違いは、第一引数で指定した桁数を超えた場合に、後ろを切る捨てるか否か。

 

ちなみにrightJustified()関数は、数値をゼロパディングするための関数ではないので、文字列の先頭を空白で埋めるなども可能です。

QStringList list;
list << "a" << "aa" << "aaa" << "aaaa" << "aaaaa";

for (QString str : list) {
    qDebug() << str.rightJustified(5, ' ');
}
"    a"
"   aa"
"  aaa"
" aaaa"
"aaaaa"

 

-QString
-, ,

Copyright© Qtの戯言 , 2020 All Rights Reserved Powered by STINGER.