শূন্য প্যাডিং (অগ্রণী শূন্য) সহ একটি কিউ স্ট্রিং-এ রূপান্তর করুন


94

আমি একটি সংখ্যা "স্ট্রিংফাই" করতে এবং শূন্য-প্যাডিং printf("%05d")যুক্ত করতে চাই, যেমন সংখ্যাটি পাঁচটি সংখ্যার চেয়ে কম হলে কীভাবে শীর্ষস্থানীয় শূন্যগুলি যুক্ত করতে পারে।

উত্তর:


178

এটা ব্যবহার কর:

QString number = QStringLiteral("%1").arg(yourNumber, 5, 10, QLatin1Char('0'));

এখানে 5 এর সাথে 5 এর সাথে মিল রয়েছে printf("%05d")। 10 হ'ল রেডিক্স, আপনি হেক্সে প্রিন্ট করতে 16 টি রাখতে পারেন।


8
ধন্যবাদ ডকুমেন্টেশন এখানে
মাইগাস

4
পূর্ণসংখ্যা থেকে হেক্স রঙের কোড তৈরির জন্য খুব দরকারী, ধন্যবাদ :)
মিশাল

এবং স্ট্রিং যুক্তি কেন "%1"?
ধেনে

@ জায়েবিস কারণ এটি প্রথম যুক্তি। যদি আরও কিছু থাকত তবে তারা %2ইত্যাদি হত doc
পল মাসরি-স্টোন

@ সাশোলাম কীভাবে আমরা একই সংখ্যক শীর্ষস্থানীয় শূন্যকে সরাতে পারি? প্রাক্তন আমার হেক্স কিউ স্ট্রিং ("% 1") এর সাথে 1f ছিল ar আর্গ (আপনার সংখ্যা, 5, 10, কিউচার ('0')); এটি হয়ে গেছে 001f। এখন আবার 1f পেতে বিপরীতটি কীভাবে করবেন? অগ্রিম সাহায্যের জন্য ধন্যবাদ
জিমিত রুপানী

37

কিউস্ট্রিং কিস্টস্ট্রিং :: ডান ন্যায়সঙ্গত (প্রস্থ, কিউচার ফিল = কিউ ল্যাটিন 1 চর (''), বুল ট্রাঙ্কেট = মিথ্যা)

int myNumber = 99;
QString result;
result = QString::number(myNumber).rightJustified(5, '0');

ফলাফল এখন 00099


আপনাকে ধন্যবাদ, আমি + = ব্যবহার করে ফ্লাইতে একটি স্ট্রিং তৈরি করছি যাতে নির্বাচিত সমাধানটি ব্যবহার করা গেল না।
রুডি বারবিয়েরি

আরও ভাল তবে এখনও একটি অস্থায়ী স্ট্রিং তৈরি করে: /
Trass3r

19

সংক্ষিপ্ত উদাহরণ:

int myNumber = 9;

//Arg1: the number
//Arg2: how many 0 you want?
//Arg3: The base (10 - decimal, 16 hexadecimal - if you don't understand, choose 10)
//      It seems like only decimal can support negative numbers.
QString number = QString("%1").arg(myNumber, 2, 10, QChar('0')); 

Output will be: 09

3

চেষ্টা করুন:

QString s = s.sprintf("%08X",yournumber);

সম্পাদনা করুন: এ ডক্স মতে http://qt-project.org/doc/qt-4.8/qstring.html#sprintf :

সতর্কতা : আমরা কিউ স্ট্রিং :: স্প্রিন্টফ () নতুন কিউটি কোডে ব্যবহার করার পরামর্শ দিই না। পরিবর্তে কিউ টেক্সটস্ট্রিম বা আরগ () ব্যবহার করে বিবেচনা করুন, উভয়ই ইউনিকোড স্ট্রিংকে নির্বিঘ্নে সমর্থন করে এবং টাইপ-নিরাপদ। এখানে একটি উদাহরণ যা QTextStream ব্যবহার করে:

QString result;
QTextStream(&result) << "pi = " << 3.14;
// result == "pi = 3.14"

এই পদ্ধতি থেকে অনুপস্থিত বৈশিষ্ট্যগুলির জন্য অন্যান্য ডক্স পড়ুন।


বর্তমানে, চিহ্নিত উত্তরটি আরও নমনীয় হওয়ায় সেরা, সর্বোত্তম সংশোধন হিসাবে চিহ্নিত করা হচ্ছে না। তবে জেনে ভালো লাগলো! (upvoting)
elcuco

-1

আমি ভিবি 5 সাল থেকে একটি কৌশল ব্যবহার করি

QString theStr=QString("0000%1").arg(theNumber).right(4);

প্রচুর মেমসিপি () এবং নষ্ট মেমরি / সিপিইউয়ের লগ। আপনি যদি Qt / C ++ ব্যবহার করেন তবে আপনি পারফরম্যান্স চান (যা বলেছিল, আমি এই কৌশলটি জেএসে ব্যবহার করে দেখেছি, এবং এটি প্ল্যাটফর্মের একটি ভাল হ্যাক)।
এলকুকো

4
হাল ছাড়বেন না !!
লেনার্ট রোল্যান্ড

-2

আমি এটি চেষ্টা করছিলাম (যা কাজ করে তবে জটিল)।

QString s;
s.setNum(n,base);
s = s.toUpper();
presision -= s.length();
while(presision>0){
    s.prepend('0');
    presision--;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.