কম্পিউটার টিউটোরিয়াল

C#-এ স্ট্রিংয়ে ক্যারেক্টার রিপ্লেস করা (Replace মেথড)

C#-এ `String.Replace` মেথড ব্যবহার করে নির্দিষ্ট ক্যারেক্টার বা সাবস্ট্রিংকে অন্য ক্যারেক্টার/সাবস্ট্রিং দিয়ে রিপ্লেস করা যায়। স্ট্রিং ইমমিউটেবল হওয়ায় এটি নতুন স্ট্রিং রিটার্ন করে।

বেসিক সিনট্যাক্স


// ক্যারেক্টার রিপ্লেস
string result = str.Replace(oldChar, newChar);

// সাবস্ট্রিং রিপ্লেস
string result = str.Replace(oldString, newString);

// কেস-ইনসেনসিটিভ রিপ্লেস (Regex দরকার)
string result = Regex.Replace(str, oldString, newString, RegexOptions.IgnoreCase);

সম্পূর্ণ উদাহরণ


using System;

public class Program
{
    public static void Main()
    {
        string str = "dem* text";
        Console.WriteLine($"Initial string = {str}");
        
        // '*' কে 'o' দিয়ে রিপ্লেস
        string res = str.Replace('*', 'o');
        
        Console.WriteLine($"After replacing asterisk = {res}");
    }
}

আউটপুট


Initial string = dem* text
After replacing asterisk = demo text

আরও উদাহরণ


string text = "Hello World! Hello C#!";

// সব "Hello" কে "Hi" দিয়ে রিপ্লেস
string replaced = text.Replace("Hello", "Hi");
// "Hi World! Hi C#!"

// কেস-ইনসেনসিটিভ (Regex)
using System.Text.RegularExpressions;
string replacedCI = Regex.Replace(text, "hello", "Hi", RegexOptions.IgnoreCase);

// একাধিক রিপ্লেস চেইন
string multi = "a,b;c:d"
    .Replace(",", "|")
    .Replace(";", "|")
    .Replace(":", "|");
// "a|b|c|d"

// স্ট্রিংবিল্ডার ব্যবহার (পারফরম্যান্স)
var sb = new System.Text.StringBuilder(text);
sb.Replace("Hello", "Hi");
string result = sb.ToString();

স্ট্রিং vs StringBuilder পারফরম্যান্স

অপারেশনString.ReplaceStringBuilder.Replace
ইমমিউটেবলহ্যাঁ (নতুন স্ট্রিং তৈরি)না (ইন-প্লেস)
একক রিপ্লেসদ্রুতসমান
বহু রিপ্লেস (লুপে)ধীর (অনেক অ্যালোকেশন)দ্রুত (একটি বাফার)
মেমরিঅধিককম

Regex.Replace - আডভান্সড রিপ্লেস


using System.Text.RegularExpressions;

string text = "Price: $100, Discount: $20";

// সব ডলার পরিমাণে টাকা চিহ্ন যোগ
string result = Regex.Replace(text, @"\$(\d+)", "৳$1");
// "Price: ৳100, Discount: ৳20"

// ফাংশন ব্যবহার করে ডাইনামিক রিপ্লেস
string result2 = Regex.Replace(text, @"\$(\d+)", m => 
{
    int amount = int.Parse(m.Groups[1].Value);
    return $"৳{amount * 110}"; // কনভার্ট
});
// "Price: ৳11000, Discount: ৳2200"

সাধারণ ভুল এড়ান

  • রেজাল্ট এসাইন না করা: `str.Replace("a", "b");` // কোনো ইফেক্ট নেই! `str = str.Replace(...)` করুন
  • নাল চেক না করা: `null.Replace(...)` → NullReferenceException
  • কলচার-সেনসিটিভ রিপ্লেস: `Replace` আর্ডিন্যাল কমপারিজন করে। তুর্কি "I" সমস্যা için `StringComparison` দরকার হলে Regex ব্যবহার করুন

সারসংক্ষেপ

  • সিম্পল রিপ্লেস: `str.Replace(old, new)` - সবচেয়ে সাধারণ
  • চেইনিং: `str.Replace(a,b).Replace(c,d)` - এক্সপ্রেসিভ
  • প্যাটার্ন/Regex: `Regex.Replace` - কমপ্লেক্স প্যাটার্ন, কেস-ইনসেনসিটিভ
  • হাই-পারফরম্যান্স/বাল্ক: `StringBuilder.Replace` - লুপে অনেক রিপ্লেস হলে
  • ইমমিউটেবিলিটি: সবসময় রেজাল্ট এসাইন করুন (`str = str.Replace(...)`)
  1. পাইথন প্রোগ্রাম - অ্যালফানিউমেরিক ক্যারেক্টার দিয়ে শেষ হওয়া স্ট্রিং গ্রহণ করুন

  2. পাইথনে অ্যালফানিউমেরিক স্ট্রিংয়ের ডিজিটগুলোকে ক্যারেক্টারে রূপান্তর

  3. পাইথন প্রোগ্রাম: স্ট্রিংএ 'a' এর সব ঘটনা $ দিয়ে রিপ্লেস করা

  4. পাইথনে বাক্য থেকে একটি শব্দকে তারকাচিহ্ন (asterisk) দিয়ে রিপ্লেস করার প্রোগ্রাম