একটি স্ট্রিং থেকে শেষ তিনটি অক্ষর সরান


122

আমি একটি স্ট্রিং থেকে শেষ তিনটি অক্ষর মুছে ফেলতে চাই:

string myString = "abcdxxx"; 

নোট করুন যে স্ট্রিংটি গতিশীল ডেটা।


1
শেষ 3 টি অক্ষর = একটি জিনিস পড়ুন, শেষ 3 টি অক্ষর = অন্যটি সরান। কোনটি?
— কাইরেন জনস্টোন

উত্তর:


234

স্ট্রিং থেকে শেষ 3 টি অক্ষর পড়ুন [প্রাথমিকভাবে প্রশ্ন করা]

আপনি স্ট্রিং ব্যবহার করতে পারেন।সস্ট্রাস্টিং এবং এটিকে সূচনা সূচকটি দিতে পারেন এবং এটি প্রদত্ত সূচী থেকে শেষ অবধি স্ট্রিংটি পাবেন।

myString.Substring(myString.Length-3)

এই উদাহরণ থেকে একটি স্ট্রিং পুনরুদ্ধার করে। সাবস্ট্রিং নির্দিষ্ট বর্ণের অবস্থান থেকে শুরু হয়। দুটিই MSDN

আপডেট পোস্টের জন্য সম্পাদনা করুন

স্ট্রিং থেকে সর্বশেষ 3 টি অক্ষর সরান [আপডেট হওয়া প্রশ্ন]

স্ট্রিং থেকে শেষ তিনটি অক্ষর অপসারণ করতে আপনি স্ট্রিং ব্যবহার করতে পারেন .এসবস্ট্রিং (ইন্ট 32, ইন্ট 32) এবং এটিকে স্ট্রিংয়ের দৈর্ঘ্যের তুলনায় তিনটি কম সূচনা সূচনা 0এবং শেষ সূচক দিন । এটি শেষ তিনটি অক্ষরের আগে সাবস্ট্রিংটি পাবে।

myString = myString.Substring(0, myString.Length-3);

স্ট্রিং.সুবস্ট্রিং পদ্ধতি (ইন্ট 32, ইন্ট 32)

এই উদাহরণ থেকে একটি স্ট্রিং পুনরুদ্ধার করে। সাবস্ট্রিং নির্দিষ্ট বর্ণের অবস্থান থেকে শুরু হয় এবং একটি নির্দিষ্ট দৈর্ঘ্য থাকে has

আপনি দৈর্ঘ্য - 3 হিসাবে সূচনা সূচকটি পেরিয়ে শেষ তিনটি অক্ষর মুছে ফেলার জন্য স্ট্রিং.আরমোভ (ইন্টার 32) পদ্ধতিটি ব্যবহার করতে পারেন , এটি স্ট্রিংয়ের শেষ থেকে এই পয়েন্টটি সরিয়ে ফেলবে।

myString = myString.Remove(myString.Length-3)

স্ট্রিং। সরানোর পদ্ধতি (আন্তঃ 32)

একটি নতুন স্ট্রিং প্রত্যাবর্তন করে যেখানে বর্তমান অবস্থার সমস্ত অক্ষর নির্দিষ্ট স্থানে শুরু হয়ে শেষ অবস্থানের মধ্য দিয়ে চলতে মুছে ফেলা হয়েছে


13
এটি এত উত্তর নয়
— ব্রেক করুন

21
ধন্যবাদ @ ব্র্যাকস, প্রাথমিকভাবে জিজ্ঞাসা করা প্রশ্নটি ছিল "স্ট্রিং থেকে শেষ 3 টি অক্ষর পড়ুন" এটি পরে সম্পাদনা করা হয়েছিল এবং আমি জানতাম না, প্রশ্ন সম্পাদনার ইতিহাস দেখুন। আপনার মন্তব্য আমাকে আমার উত্তরটি সংশোধন করতে সহায়তা করেছে যা প্রশ্নের সম্পাদনার পরে ভুল হয়ে গেছে।
— আদিল


13

আমি এই সমস্ত মাধ্যমে পড়া, কিন্তু কিছুটা মার্জিত কিছু চেয়েছিলেন। কেবল একটি স্ট্রিংয়ের শেষে থেকে নির্দিষ্ট সংখ্যক অক্ষর মুছে ফেলার জন্য:

string.Concat("hello".Reverse().Skip(3).Reverse());

আউটপুট:

"he"

7
এটি একটি বেশ "সৃজনশীল", যেহেতু এটির স্ট্রিংয়ের দৈর্ঘ্যের প্রয়োজন নেই, তবে বিপরীত অপারেশন সম্ভবত আরও ব্যয়বহুল।
— Aleksandar

4
স্ট্রিংটির বিপরীতটি অবশ্যই এর চরিত্রগুলি গণনা করার চেয়ে বেশি ব্যয়বহুল। একটি সম্পূর্ণ নতুন স্ট্রিং তৈরি করা দরকার, তার পরে এটির আসলটি অনুলিপি করা হবে, তারপরে মূল স্ট্রিংটি আবর্জনা সংগ্রহ করা দরকার।
— ম্যাট গ্রেগরি

@ ম্যাটগ্রিগরি স্ট্রিংগুলি অপরিবর্তনীয়: সরান, সাবস্ট্রিং, যে কোনও স্ট্রিং ফাংশন একটি নতুন স্ট্রিং উত্পন্ন করে। মূল পয়েন্টারটি ওভাররাইট করা সর্বদা আবর্জনা সংগ্রহের কারণ হয়। এটি এখনও ধীরে ধীরে, Enumerable.Reverseস্ট্রিংটিকে ক হিসাবে বিফার করে char[], তারপরে char[]3 টি স্বল্প করে নতুন করে বাফার করে এবং তারপরে একটি নতুন তৈরি করে string(অভ্যন্তরীণ অন্যটির সাথে char[])। আরও ভাল পদ্ধতির হতে পারে new string("hello".Reverse().Skip(3)), বা কেবল নিজের স্ট্রিং এক্সটেনশন ফাংশনটি লিখুন AllBut(this string in, int i)যা সাবস্ট্রিং ব্যবহার করে।
— ওল্ফজুন

@ ম্যাটগ্রিগরি এটি একটি স্ট্রিংয়ের অক্ষরগুলিকে "গণনা" এমনকি নয়, একটি স্ট্রিং এর Lengthসঞ্চিত রয়েছে।
— ওল্ফজুন

1
এখন আমাদেরও আছে .SkipLast(n)। কোনও কিছুর বিপরীত দরকার নেই। "hello".SkipLast(3)দেয়"he"
— অজিতজিরো



5

আপনি String.Removeস্ট্রিংয়ের শেষে নির্দিষ্ট অবস্থান থেকে মুছতে ব্যবহার করতে পারেন ।

myString = myString.Remove(myString.Length - 3);

4

সম্ভবত আপনি যা খুঁজছেন ঠিক তা নয় যেহেতু আপনি এটি "গতিশীল ডেটা" বলছেন তবে আপনার উদাহরণের স্ট্রিং দেওয়ার পরে এটি কাজ করে:

? "abcdxxx".TrimEnd('x');
"abc"



2
   string myString = "abcdxxx";
   if (myString.Length<3)
      return;
   string newString=myString.Remove(myString.Length - 3, 3);

1

একটি স্ট্রিং থেকে শেষ অক্ষরগুলি সরান

TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10)

.Text.Remove(10)// সূচক 10 থেকে শেষ পর্যন্ত পাঠ্য অপসারণ করতে ব্যবহৃত হয়েছে


1

নতুন সি # 8.0 রেঞ্জ অপারেটর এটি অর্জনের জন্য দুর্দান্ত শর্টকাট হতে পারে।

উদাহরণ:

var shortenedString = myString[0..^1]

0
items.Remove(items.Length - 3)

string.Remove()সেই সূচি থেকে শেষ পর্যন্ত সমস্ত আইটেম সরিয়ে দেয়। items.length - 3শেষ থেকে সূচক 3 অক্ষর পায়


0

সহজ। text = text.remove(text.length - 3)। আমি 3 টি বিয়োগ করেছি কারণ Removeফাংশনটি সেই সূচি থেকে স্ট্রিংয়ের শেষে সমস্ত আইটেম সরিয়ে দেয় text.length। সুতরাং আমি যদি 3 টি বিয়োগ করি তবে আমি এর থেকে 3 টি অক্ষর সরিয়ে স্ট্রিংটি পাই।

আপনি aস্ট্রিংয়ের শেষে থেকে অক্ষরগুলি সরানোর জন্য এটি সাধারণকরণ করতে পারেন :

text = text.remove(text.length - a) 

সুতরাং আমি যা করেছি তা একই যুক্তিযুক্ত। removeফাংশন যে স্ট্রিংটি পাঠ্যের দৈর্ঘ্য হল শেষে তার ভিতর থেকে সব আইটেম সরিয়ে ফেলা হয়। সুতরাং আমি যদি aস্ট্রিংয়ের দৈর্ঘ্য থেকে বিয়োগ করি যা আমাকে স্ট্রিংটি দিয়ে দেবেa অক্ষরগুলি মুছে ফেলা দেবে।

সুতরাং এটি কেবল 3 এর জন্য কাজ করে না, এটি সমস্ত ধনাত্মক পূর্ণসংখ্যার জন্য কাজ করে, যদি স্ট্রিংয়ের দৈর্ঘ্য এর চেয়ে কম বা সমান হয় তবে aসে ক্ষেত্রে এটি একটি নেতিবাচক সংখ্যা বা 0 প্রদান করবে।

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