অন্যান্য পদ্ধতির মতো সম্ভবত মার্জিত নয় তবে এটি বেশ শক্ত এবং অনুসরণ করা সহজ, এসএসপি। জাভা আরও নতুন মানুষের জন্য। স্ট্রিং ক্লাস সম্পর্কে আমার কাছে যে জিনিসটি আসে তা হ'ল: এটি অনেক দিন ধরে ছিল এবং যখন এটি রেগ এক্সপ্লেসের সাথে একটি গ্লোবাল রিপ্লেস এবং স্ট্রিংসের সাথে একটি গ্লোবাল রিপ্লেস সমর্থন করে (চারসেকেন্সের মাধ্যমে), শেষটির কোনও সাধারণ বুলিয়ান প্যারামিটার নেই : 'isCaseInsensitive'। সত্যিই, আপনি ভেবেছিলেন যে কেবল একটি সামান্য সুইচ যুক্ত করে, এটির অনুপস্থিতির কারণ বিশেষত নবজাতকদের জন্য যে সমস্ত সমস্যা রয়েছে তা এড়ানো যেত। এখন জেডিকে on-এ, স্ট্রিং এখনও এই সামান্য সংযোজন সমর্থন করে না!
যাইহোক, আমি আঁকড়ে ধরা বন্ধ করব। জাভাতে বিশেষত প্রত্যেকের জন্য, আপনার কাট-পেস্ট ডিউস প্রাক্তন মেশিনা । যেমনটি আমি বলেছি, মার্জিত নয় এবং আপনাকে কোনও চটজলদি কোডিং পুরস্কার জিতবে না, তবে এটি কার্যকর এবং নির্ভরযোগ্য। কোন মন্তব্য, অবদান নির্দ্বিধায়। (হ্যাঁ, আমি জানি, স্ট্রিংবফার সম্ভবত দুটি চরিত্রের স্ট্রিং মিউটেশন লাইন পরিচালনা করার পক্ষে আরও ভাল পছন্দ, তবে কৌশলগুলি অদলবদল করার পক্ষে এটি যথেষ্ট সহজ))
public String replaceAll(String findtxt, String replacetxt, String str,
boolean isCaseInsensitive) {
if (str == null) {
return null;
}
if (findtxt == null || findtxt.length() == 0) {
return str;
}
if (findtxt.length() > str.length()) {
return str;
}
int counter = 0;
String thesubstr = "";
while ((counter < str.length())
&& (str.substring(counter).length() >= findtxt.length())) {
thesubstr = str.substring(counter, counter + findtxt.length());
if (isCaseInsensitive) {
if (thesubstr.equalsIgnoreCase(findtxt)) {
str = str.substring(0, counter) + replacetxt
+ str.substring(counter + findtxt.length());
// Failing to increment counter by replacetxt.length() leaves you open
// to an infinite-replacement loop scenario: Go to replace "a" with "aa" but
// increment counter by only 1 and you'll be replacing 'a's forever.
counter += replacetxt.length();
} else {
counter++; // No match so move on to the next character from
// which to check for a findtxt string match.
}
} else {
if (thesubstr.equals(findtxt)) {
str = str.substring(0, counter) + replacetxt
+ str.substring(counter + findtxt.length());
counter += replacetxt.length();
} else {
counter++;
}
}
}
return str;
}