एक स्ट्रिंग के पहले 10 अक्षरों को कैसे अनदेखा करें?
इनपुट:
str = "hello world!";
आउटपुट:
d!
एक स्ट्रिंग के पहले 10 अक्षरों को कैसे अनदेखा करें?
इनपुट:
str = "hello world!";
आउटपुट:
d!
जवाबों:
str = "hello world!";
str.Substring(10, str.Length-10)
आपको लंबाई जांच करने की आवश्यकता होगी अन्यथा यह एक त्रुटि फेंक देगा
str = str.Remove(0,10);
पहले 10 वर्णों को निकालता है
या
str = str.Substring(10);
स्ट्रिंग के अंत में 11 वें वर्ण पर शुरू होने वाला एक सबस्ट्रिंग बनाता है।
आपके उद्देश्यों के लिए उन्हें पहचान के साथ काम करना चाहिए।
सब्स्ट्रीमिंग शायद वही है जो आप चाहते हैं, जैसा कि दूसरों ने बताया। लेकिन सिर्फ मिश्रण में एक और विकल्प जोड़ने के लिए ...
string result = string.Join(string.Empty, str.Skip(10));
तुम भी इस पर लंबाई की जांच करने की जरूरत नहीं है! :) यदि इसकी 10 चार्ट से कम है, तो आपको एक खाली स्ट्रिंग मिलती है।
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!
यदि आप इसकी लंबाई की जाँच करके रक्षात्मक कोडिंग लागू कर सकते हैं।
आप नीचे लाइन का उपयोग करके चार को हटा सकते हैं,
: - पहला चेक जो स्ट्रिंग को हटाने के लिए पर्याप्त चार है , जैसे
string temp="Hello Stack overflow";
if(temp.Length>10)
{
string textIWant = temp.Remove(0, 10);
}
सबस्ट्रिंग विधि का उपयोग करें।
string s = "hello world";
s=s.Substring(10, s.Length-10);
आप विधि का उपयोग कर सकते हैं -स्ट्रिंग विधि है कि एक एकल पैरामीटर, जो सूचकांक से शुरू करने के लिए है लेता है।
नीचे दिए गए मेरे कोड में केस से निपटने के लिए लंबाई आपके वांछित स्टार्ट इंडेक्स से कम है और जब लंबाई शून्य है।
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));
के लिये:
var str = "hello world!";
पहले 10 वर्णों के बिना परिणामी स्ट्रिंग प्राप्त करने के लिए और यदि स्ट्रिंग 10 से कम या बराबर है तो आप इसका उपयोग कर सकते हैं:
var result = str.Length <= 10 ? "" : str.Substring(10);
या
var result = str.Length <= 10 ? "" : str.Remove(0, 10);
पहला संस्करण पसंद किया जा रहा है क्योंकि इसमें केवल एक विधि पैरामीटर की आवश्यकता होती है।
लंबाई को Substring
विधि में निर्दिष्ट करने की आवश्यकता नहीं है । इसलिए:
string s = hello world;
string p = s.Substring(3);
p
होगा:
"लो दुनिया"।
एकमात्र अपवाद जिसे आपको पूरा करने की आवश्यकता है, ArgumentOutOfRangeException
यदि
startIndex
यह शून्य से कम है या इस उदाहरण की लंबाई से अधिक है।
C # 8 से शुरू होकर, आप बस रेंज ऑपरेटर का उपयोग कर सकते हैं। यह ऐसे मामलों को संभालने का अधिक कुशल और बेहतर तरीका है।
string AnString = "Hello World!";
AnString = AnString[10..];
C# 8
लक्षित करते समय समर्थित नहीं है .NET Framework
।
कॉलिंग SubString()
एक नई स्ट्रिंग आवंटित करती है। इष्टतम प्रदर्शन के लिए, आपको उस अतिरिक्त आवंटन से बचना चाहिए। C# 7.2
आप के साथ शुरू करके स्पैन पैटर्न का लाभ उठा सकते हैं ।
लक्ष्यीकरण करते समय .NET Framework
, System.Memory 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();
}