স্ট্রিং.ফর্ম্যাটটিতে একটি প্যারামিটার পুনরায় ব্যবহার করবেন?


136
String hello = "Hello";

String.format("%s %s %s %s %s %s", hello, hello, hello, hello, hello, hello);

hello hello hello hello hello hello 

হ্যালো ভেরিয়েবলটি ফর্ম্যাট পদ্ধতিতে কলটিতে একাধিকবার পুনরাবৃত্তি করা দরকার বা কোনও শর্টহ্যান্ড সংস্করণ রয়েছে যা আপনাকে সমস্ত টোকনে একবার প্রয়োগ করার জন্য যুক্তিটি নির্দিষ্ট করতে দেয় %s?

উত্তর:


261

ডক্স থেকে :

  • সাধারণ, চরিত্র এবং সংখ্যার ধরণের জন্য ফর্ম্যাট স্পেসিফায়ারগুলিতে নিম্নলিখিত বাক্য গঠন থাকে:

        %[argument_index$][flags][width][.precision]conversion

    Alচ্ছিক আর্গুমেন্ট_ইন্ডেক্স একটি দশমিক পূর্ণসংখ্যা যা আর্গুমেন্ট তালিকার মধ্যে আর্গুমেন্টের অবস্থানটি নির্দেশ করে। প্রথম যুক্তি দ্বারা রেফারেন্স করা হয় "1$", দ্বিতীয় দ্বারা "2$", ইত্যাদি।

String.format("%1$s %1$s %1$s %1$s %1$s %1$s", hello);

64

অপর বিকল্পটি আপেক্ষিক সূচক ব্যবহার করা হয় : বিন্যাস নির্দিষ্টকরণকারকটি শেষ বিন্যাসের নির্দিষ্টকারীর মতো একই যুক্তিকে উল্লেখ করে।

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

String.format("%s %<s %<s %<s", "hello")

ফলাফল hello hello hello hello



12

%[argument_index$]নিম্নলিখিত হিসাবে আপনার ব্যবহারকারী সূচক যুক্তি প্রয়োজন :

String hello = "Hello";
String.format("%1$s %1$s %1$s %1$s %1$s %1$s", hello);

ফলাফল : hello hello hello hello hello hello


4

একটি যুক্তি পুনরায় ব্যবহারের জন্য একটি সাধারণ ক্ষেত্রে String.formatবিভাজক (যেমন ";"সিএসভি বা কনসোলের জন্য ট্যাব) রয়েছে with

System.out.println(String.format("%s %2$s %s %2$s %s %n", "a", ";", "b", "c"));
// "a ; ; ; b"

এটি পছন্দসই আউটপুট নয়। "c"কোথাও উপস্থিত হয় না।

আপনাকে প্রথমে বিভাজকটি ব্যবহার করতে হবে (সহ %s) এবং %2$sনিম্নলিখিত উপস্থিতিগুলির জন্য কেবল যুক্তি সূচক ( ) ব্যবহার করতে হবে:

System.out.println(String.format("%s %s %s %2$s %s %n", "a", ";", "b", "c"));
//  "a ; b ; c"

পাঠযোগ্যতা এবং ডিবাগিংয়ের জন্য স্পেস যুক্ত করা হয়। ফর্ম্যাটটি সঠিক হিসাবে উপস্থিত হওয়ার পরে, পাঠ্য সম্পাদকটিতে শূন্যস্থানগুলি সরানো যেতে পারে:

System.out.println(String.format("%s%s%s%2$s%s%n", "a", ";", "b", "c"));
// "a;b;c"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.