কোনও স্ট্রিং থেকে প্রথম 10 টি অক্ষর কীভাবে সরানো যায়?


94

কোনও স্ট্রিংয়ের প্রথম 10 টি অক্ষর কীভাবে উপেক্ষা করবেন?

ইনপুট:

str = "hello world!";

আউটপুট:

d!

9
স্ট্রিং.সুবস্ট্রিং (9); যেখানে 9 সূচনা সূচকটি রয়েছে
ওয়াকাস

প্রথমে পরীক্ষা করে দেখুন যে স্ট্রিংয়ের কমপক্ষে 10 টি অক্ষর রয়েছে বা আপনি একটি ব্যতিক্রম পাবেন exception
জোনাথন

সাবস্ট্রিং কেন সমর্থন করে না (স্টার্টইনডেক্স, এন্ডিন্ডেক্স)? প্রতিবার আমাদের দৈর্ঘ্য গণনা করতে হবে .. :-(
সংগ্রাম নন্দখিলে

4
@ ওয়াকাস: প্রকৃতপক্ষে এটি স্ট্রিং সাবস্ট্রিং (১০), প্যারামিটারটি এমন অবস্থান যা থেকে সাবস্ট্রিংটি বের করা শুরু হয়
রেজওয়ান ফ্ল্যাভিয়াস পান্ডা

উত্তর:


98
str = "hello world!";
str.Substring(10, str.Length-10)

আপনাকে দৈর্ঘ্যের চেকগুলি সম্পাদন করতে হবে অন্যথায় এটি একটি ত্রুটি ফেলবে


218

str = str.Remove(0,10); প্রথম 10 টি অক্ষর সরান

বা

str = str.Substring(10); স্ট্রিংয়ের শেষে 11 তম অক্ষর থেকে শুরু করে একটি স্ট্রিং তৈরি করে।

আপনার উদ্দেশ্যে তারা অভিন্ন কাজ করা উচিত।


16

সাবস্ট্রিং সম্ভবত আপনি চান, অন্যরা নির্দেশ করেছেন। তবে কেবল মিশ্রণের জন্য আরও একটি বিকল্প যুক্ত করতে ...

string result = string.Join(string.Empty, str.Skip(10));

আপনি এটি দৈর্ঘ্য পরীক্ষা করতে হবে না! :) এটির তুলনায় 10 টিরও কম হলে আপনি একটি খালি স্ট্রিং পান।


এবং আরও ভাল পাঠযোগ্যতার জন্য, আপনি "" ব্যবহার করতে পারেন। এটি স্ট্রিংয়ের মতো একই সংকলন করে these আজকাল খালি।
PRMan

এটি স্ট্রিংয়ের সময় একটি নতুন স্ট্রিং তৈরি করে না E পারফরম্যান্সের ক্ষেত্রে এটি আসলেই গুরুত্বপূর্ণ নয় (মানে এটি একটি খালি স্ট্রিং তাই হ্যাঁ ...) তবে কেবল এটি উল্লেখ করতে চেয়েছিলেন :)
জের 0

"" প্রকৃতপক্ষে একটি নতুন স্ট্রিং তৈরি করে, এখানে দেখতে stackoverflow.com/a/263257/604613
UrbanEsc

11

Substring দুটি ওভারলোডিং পদ্ধতি রয়েছে:

public string Substring(int startIndex);//The substring starts at a specified character position and continues to the end of the string.

public string Substring(int startIndex, int length);//The substring starts at a specified character position and taking length no of character from the startIndex.

সুতরাং এই দৃশ্যের জন্য, আপনি নীচের মতো প্রথম পদ্ধতিটি ব্যবহার করতে পারেন:

var str = "hello world!";
str = str.Substring(10);

এখানে আউটপুট হয়:

d!

আপনি যদি এর দৈর্ঘ্য পরীক্ষা করে ডিফেন্সিভ কোডিং প্রয়োগ করতে পারেন।


6

Substringএকটি প্যারামিটার startIndex বলা হয়। আপনি যে সূচকটি শুরু করতে চান সে অনুযায়ী এটি সেট করুন।


3

আপনি রেখার নীচে ব্যবহার করে চর সরিয়ে ফেলতে পারেন,

: - প্রথমে পরীক্ষা করে দেখুন যে স্ট্রিংয়ের মতো সরানোর মতো পর্যাপ্ত পরিমাণ রয়েছে

   string temp="Hello Stack overflow";
   if(temp.Length>10)
   {
    string textIWant = temp.Remove(0, 10);
   }


1

আপনি সাবস্ট্রিং পদ্ধতিটি ব্যবহার করতে পারেন যা একটি একক প্যারামিটার নেয়, যা সূচক থেকে শুরু হয়।

নীচের আমার কোডে আমি কেসটির সাথে ডিল করেছি আপনার পছন্দসই সূচকের চেয়ে দৈর্ঘ্য কম এবং যখন দৈর্ঘ্য শূন্য হয়।

string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));

বর্তমানে এটি স্ট্রিং থেকে শেষ অক্ষরটি প্রদান করে যদি স্ট্রিংটি 10 ​​টি অক্ষরের চেয়ে কম হয়।
রেজওয়ান ফ্ল্যাভিয়াস পান্ডা 25'11

1

এর জন্য:

var str = "hello world!";

প্রথম 10 টি অক্ষর ছাড়াই ফলাফলের স্ট্রিং এবং খালি স্ট্রিংটি পেতে যদি স্ট্রিং দৈর্ঘ্যে কম বা সমান হয় 10 আপনি ব্যবহার করতে পারেন:

var result = str.Length <= 10 ? "" : str.Substring(10);

বা

var result = str.Length <= 10 ? "" : str.Remove(0, 10);

এটির জন্য কেবলমাত্র একটি পদ্ধতি প্যারামিটারের প্রয়োজন হওয়ায় প্রথম বৈকল্পিক পছন্দ করা হচ্ছে।


1

Substringপদ্ধতিতে দৈর্ঘ্য নির্দিষ্ট করার দরকার নেই । অতএব:

string s = hello world;
string p = s.Substring(3);

p হবে:

"লো ওয়ার্ল্ড"

আপনার যদি একমাত্র ব্যতিক্রমটি পূরণ করতে হয় ArgumentOutOfRangeExceptionতবে startIndexতা হ'ল শূন্যের চেয়ে কম বা এই উদাহরণটির দৈর্ঘ্যের চেয়ে বেশি।


0

সি # 8 থেকে শুরু করে আপনি কেবল রেঞ্জ অপারেটর ব্যবহার করতে পারেন। এই ধরণের কেসগুলি পরিচালনা করার পক্ষে এটি আরও কার্যকর এবং সর্বোত্তম উপায়।

string AnString = "Hello World!";
AnString = AnString[10..];

C# 8লক্ষ্য করার সময় সমর্থিত হয় না .NET Framework
l33t

0

কলিং SubString()একটি নতুন স্ট্রিং বরাদ্দ করে। অনুকূল পারফরম্যান্সের জন্য, আপনার অতিরিক্ত বরাদ্দ এড়ানো উচিত। C# 7.2আপনার সাথে শুরু করে স্প্যান প্যাটার্নটির সুবিধা নিতে পারেন ।

টার্গেট করার সময় .NET Framework, সিস্টেম.মেমরি NuGet প্যাকেজ অন্তর্ভুক্ত করুন । জন্য .NET Coreপ্রকল্প এই বাক্সের বাইরে কাজ করে।

static void Main(string[] args)
{
    var str = "hello world!";
    var span = str.AsSpan(10); // No allocation!

    // Outputs: d!
    foreach (var c in span)
    {
        Console.Write(c);
    }

    Console.WriteLine();
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.