c# সি#আরেকটি স্ট্রিং দ্বারা একটি স্ট্রিং বিভক্ত




.net string (8)

উপরের উত্তর সব সঠিক। আমি এক ধাপ এগিয়ে যাচ্ছি এবং স্ট্রিং-এ এক্সটেনশান পদ্ধতি সংজ্ঞায়িত করে C # আমার জন্য কাজ করি:

public static string[] Split(this string toSplit, string splitOn) {
    return toSplit.Split(new string[] { splitOn }, StringSplitOptions.None);
}

যেভাবে আমি সহজ ভাবে কোন স্ট্রিং এ এটি কল করতে পারি আমি নির্বাকভাবে প্রথমবারের মতো এটি করার চেষ্টা করেছিলাম:

"a big long string with stuff to split on".Split("g str");

আমি স্ট্রিং বিভক্ত করার জন্য Split() পদ্ধতিটি ব্যবহার করছি, তবে আপনি যদি একটি অক্ষর দ্বারা একটি স্ট্রিং বিভাজন করছেন তবে এটি কেবল তখনই কাজ করে। একটি string বিভক্ত করার কোন উপায় আছে, অন্য স্ট্রিং পরামিতি দ্বারা বিভক্ত হচ্ছে? আমি কোন ভাগ্য সঙ্গে, একটি চরিত্র অ্যারে মধ্যে splitter রূপান্তর চেষ্টা করেছি।

অন্য কথায়, আমি string বিভক্ত করতে চাই:

THExxQUICKxxBROWNxxFOX

xx দ্বারা, এবং মান সহ একটি অ্যারে ফেরত:

দী, দ্রুত, ব্রাউন, ফক্স


Regex.Split(string,"xx")

সাধারণত আমি এটা করতে উপায়। অবশ্যই আপনি একটি প্রয়োজন হবে

using System.Text.RegularExpressions;

কিন্তু আবার আমি যে lib সব সময় প্রয়োজন।


এটিও সহজ:

string data = "THExxQUICKxxBROWNxxFOX";
string[] arr = data.Split("xx".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

স্প্লিটের একটি ওভারলোড রয়েছে যা স্ট্রিংগুলি নেয়।

"THExxQUICKxxBROWNxxFOX".Split(new [] { "xx" }, StringSplitOptions.None);

আপনি এই StringSplitOptions হয় ব্যবহার করতে পারেন

  • কেউ না - ফেরত মানটি একটি খালি স্ট্রিং ধারণকারী অ্যারের উপাদানগুলি অন্তর্ভুক্ত করে
  • RemoveEmptyEntries - ফেরত মান একটি খালি স্ট্রিং ধারণকারী অ্যারের উপাদান অন্তর্ভুক্ত করা হয় না

সুতরাং যদি স্ট্রিংটি "ThexxQUICKxxxxBROWNxxFOX" হয়, StringSplitOptions.None সময় "xxxx" অংশে অ্যারেতে একটি খালি এন্ট্রি StringSplitOptions.RemoveEmptyEntries দেবে। StringSplitOptions.RemoveEmptyEntries হবে না।


string data = "THExxQUICKxxBROWNxxFOX";

return data.Replace("xx","|").Split('|');

শুধু প্রতিস্থাপনের চরিত্র সাবধানে নির্বাচন করুন (ইতিমধ্যে স্ট্রিং উপস্থিত হতে পারে না এমন একটি নির্বাচন করুন)!


সবচেয়ে সহজ উপায় String.Replace ব্যবহার করা হয়। String.Replace :

string myString = "THExxQUICKxxBROWNxxFOX";
mystring = mystring.Replace("xx", ", ");

অথবা আরও সহজভাবে:

string myString = "THExxQUICKxxBROWNxxFOX".Replace("xx", ", ");

আমি সাধারণত আমার নিজের এক্সটেনশানটি ব্যবহার করতে পছন্দ করি:

string data = "THExxQUICKxxBROWNxxFOX";
var dataspt = data.Split("xx");
//>THE  QUICK  BROWN  FOX 


//the extension class must be declared as static
public static class StringExtension
{   
    public static string[] Split(this string str, string splitter)
    {
        return str.Split(new[] { splitter }, StringSplitOptions.None);
    }
}

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

এটি উপস্থিত না থাকলে রানটাইম পদ্ধতিটি শর্তসাপেক্ষে সংজ্ঞায়িত করাও সম্ভব হতে পারে।


স্ট্রিং এর একটি ওভারলোড আছে। এই জন্য প্লাস :

"THExxQUICKxxBROWNxxFOX".Split(new [] {"xx"}, StringSplitOptions.None);




split