জাভা স্ট্রিং ফর্ম্যাট ব্যবহার করে একটি পূর্ণসংখ্যা বিন্যাস করুন


129

আমি ভাবছি যে জাভাতে স্ট্রিং.ফর্ম্যাট পদ্ধতিটি ব্যবহার করে পূর্বের শূন্যের পূর্বে পূর্ণসংখ্যা দেওয়া সম্ভব কিনা?

উদাহরণ স্বরূপ:

1 হয়ে উঠবে 001
2 হয়ে উঠবে 002
...
11 হয়ে উঠবে 011
12 হয়ে উঠবে 012
...
526 অবধি থাকবে 526
... ইত্যাদি

এই মুহুর্তে আমি নিম্নলিখিত কোডটি চেষ্টা করেছি:

String imageName = "_%3d" + "_%s";

for( int i = 0; i < 1000; i++ ){
    System.out.println( String.format( imageName, i, "foo" ) );
}

দুর্ভাগ্যক্রমে, এটি 3 খালি স্পেস সহ সংখ্যাটির আগে। এর পরিবর্তে শূন্যের সাথে সংখ্যাটি আগে কী সম্ভব?


উত্তর:


172

ব্যবহার করুন %03dপূর্ণসংখ্যা জন্য বিন্যাস সুনির্দিষ্টভাবে উল্লেখ করা হবে। এর 0অর্থ এই যে তিনটি (এই ক্ষেত্রে) সংখ্যার চেয়ে কম হলে সংখ্যাটি শূন্য-পূর্ণ হবে।

দেখুন Formatterঅন্যান্য সংশোধনকারীদের ডক্স।


211
String.format("%03d", 1)  // => "001"
//              │││   └── print the number one
//              ││└────── ... as a decimal integer
//              │└─────── ... minimum of 3 characters wide
//              └──────── ... pad with zeroes instead of spaces

দেখুন java.util.Formatterআরও তথ্যের জন্য।


13

যদি আপনি অ্যাপাচি কমন্স-ল্যাং নামে একটি তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করেন তবে নিম্নলিখিত সমাধানটি কার্যকর হতে পারে:

StringUtilsঅ্যাপাচি কমন্স-ল্যাংয়ের শ্রেণি ব্যবহার করুন :

int i = 5;
StringUtils.leftPad(String.valueOf(i), 3, "0"); // --> "005"

হিসাবে StringUtils.leftPad()দ্রুতString.format()


স্ট্রিংইটিলস.লেফটপ্যাড আরেকটি ভাল পছন্দ এবং এটি যুক্তিযুক্ত হতে পারে যে এটি আরও পাঠযোগ্য এবং এটি আপনাকে অন্যান্য অক্ষরের সাথে প্যাড করতে দেয়। আমার চারপাশে একটি গুগল রয়েছে তবে আমি এটির দ্রুতগতি নিশ্চিত করার মতো কোনও কিছুই পাই না - আপনি কি তার জন্য কিছু প্রমাণ সরবরাহ করতে পারেন?
আমার

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.