আমি মনে করি একটি নির্দিষ্ট অবস্থানে স্ট্রিং toোকানোর একটি সহজ এবং আরও মার্জিত সমাধান হ'ল এই ওয়ান-লাইনার:
target.replaceAll("^(.{" + position + "})", "$1" + insert);
উদাহরণস্বরূপ, একটি স্ট্রিংয়ের :
মধ্যে একটি হারিয়ে যাওয়া সন্নিবেশ করা:
"-0300".replaceAll("^(.{3})", "$1:");
এটি যা করে তা হল position
স্ট্রিংয়ের শুরু থেকে অক্ষরগুলির সাথে মেলে , গোষ্ঠীগুলির সাথে নিজের গ্রুপটি প্রতিস্থাপন করে ( $1
) insert
স্ট্রিংয়ের পরে। প্রতিস্থাপনের সমস্ত কিছু মনে রাখুন, যদিও সবসময়ই একটি ঘটনা থাকে, কারণ প্রথম প্যারামিটারটি অবশ্যই একটি রেজেক্স হতে হবে।
অবশ্যই এটি স্ট্রিংবিল্ডার সলিউশনের মতো একই পারফরম্যান্সটি রাখে না, তবে আমি বিশ্বাস করি যে একটি লাইনার পড়ার জন্য একটি সহজ এবং সহজ হিসাবে সাবলীলতা এবং কমনীয়তা (একটি বিশাল পদ্ধতির তুলনায়) বেশিরভাগ অ-পারফরম্যান্সে এটি পছন্দসই সমাধান তৈরি করার জন্য যথেষ্ট I ক্রিটিকাল ব্যবহারের ক্ষেত্রে।
নোট আমি ডকুমেন্টেশনের কারণে শিরোনামে জেনেরিক সমস্যাটি সমাধান করছি, অবশ্যই যদি আপনি দশমিক সংখ্যার সাথে সম্পর্কিত হন তবে আপনাকে ইতিমধ্যে প্রস্তাবিত ডোমেন-নির্দিষ্ট সমাধানগুলি ব্যবহার করা উচিত।
String str = Integer.toString(j); //integer or string with white spaces<br/> str = new StringBuffer(str.trim()).insert(str.length()-2, ".").toString();