मैंने इस प्रश्न को स्ट्रिंग के पहले चार पाने के लिए पढ़ा है । क्या C # में स्ट्रिंग से वर्णों की पहली n संख्या प्राप्त करने का कोई तरीका है?
मैंने इस प्रश्न को स्ट्रिंग के पहले चार पाने के लिए पढ़ा है । क्या C # में स्ट्रिंग से वर्णों की पहली n संख्या प्राप्त करने का कोई तरीका है?
जवाबों:
आप Enumerable.Take का उपयोग कर सकते हैं जैसे:
char[] array = yourStringVariable.Take(5).ToArray();
या आप String.Substring का उपयोग कर सकते हैं ।
string str = yourStringVariable.Substring(0,5);
याद रखें कि String.Substring
स्ट्रिंग की लंबाई के मामले में एक अपवाद फेंक सकता है जो आवश्यक वर्णों से कम है।
यदि आप परिणाम वापस स्ट्रिंग में प्राप्त करना चाहते हैं तो आप उपयोग कर सकते हैं:
स्ट्रिंग कंस्ट्रक्टर और LINQ का उपयोग करना Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
दृष्टिकोण के साथ प्लस हाथ से पहले लंबाई के लिए जाँच नहीं कर रहा है।
String.Substring
त्रुटि जाँच के साथ उपयोग करना हैपसंद:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
IsNullOrWhiteSpace
यहाँ गलत है 10 रिक्त के साथ एक स्ट्रिंग पर विचार करें - आपका कोड सभी वापस आ जाएगा 10. IsNullOrEmpty
इसके बजाय का उपयोग करें । ( IsNullOrWhiteSpace
किसी भी अन्य परीक्षण के साथ संयोजन करना अच्छा नहीं है ; इसके बजाय अशक्त + खाली के लिए परीक्षण करें, फिर Trim
यदि वह निर्दिष्ट व्यवहार है, तो जो भी परीक्षण / संचालन आवश्यक हैं।)
आप सबस्ट्रिंग (int startIndex, int length) का उपयोग कर सकते हैं
string result = str.Substring(0,5);
प्रतिस्थापन एक निर्दिष्ट वर्ण स्थिति पर शुरू होता है और एक निर्दिष्ट लंबाई होती है। यह विधि वर्तमान उदाहरण के मान को संशोधित नहीं करती है। इसके बजाय, यह वर्तमान स्ट्रिंग, MSDN में प्रारंभ स्थिति से शुरू होने वाले लंबाई वर्णों के साथ एक नया स्ट्रिंग देता है
क्या होगा अगर स्रोत स्ट्रिंग कम है तो पांच वर्ण? उपरोक्त विधि का उपयोग करके आपको अपवाद मिलेगा। हम यह जांचने के लिए शर्त रख सकते हैं कि यदि स्ट्रिंग में वर्णों की संख्या अधिक है तो 5 को पहले सबस्ट्रिंग के माध्यम से प्राप्त करें। नोट I ने स्रोत स्ट्रिंग को FirstFiveChar चर में सौंपा है। FirstFiveChar नहीं बदलता है यदि वर्ण कम हैं तो 5, इसलिए भाग की आवश्यकता नहीं है।
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
उपयोग करते समय किसी ने उचित जांच करने का उल्लेख नहीं किया है Substring()
, इसलिए मैं इस बारे में योगदान करना चाहता था।
यदि आप उपयोग नहीं करना चाहते हैं Linq
और साथ जाना चाहते हैं Substring()
, तो आपको यह सुनिश्चित करना होगा कि आपका स्ट्रिंग Substring()
फ़ंक्शन के दूसरे पैरामीटर (लंबाई) से बड़ा है ।
मान लीजिए कि आपको पहले 5 पात्रों की आवश्यकता है। आप उन्हें इस तरह से उचित जांच करवाएं:
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
इस जांच के बिना, Substring()
फ़ंक्शन अपवाद को फेंक देगा क्योंकि यह उन पत्रों के माध्यम से पुनरावृति करेगा जो वहां नहीं हैं।
मुझे लगता है कि आपको विचार समझ आ गया है...
इसके साथ समस्या .Substring(,)
यह है, कि आपको यह सुनिश्चित करने की आवश्यकता है कि दिए गए स्ट्रिंग में कम से कम वर्णों की लंबाई है, अन्यथा ArgumentOutOfRangeException
उन्हें फेंक दिया जाएगा।
समाधान 1 ('पदार्थ' का उपयोग करके):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
उपयोग करने .Substring(
का दोष यह है कि आपको दिए गए स्ट्रिंग की लंबाई की जांच करने की आवश्यकता होगी।
समाधान 2 ('ले' का उपयोग करके):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
Using टेक ’ का उपयोग करने से यह रोका जा सकेगा कि आपको दिए गए स्ट्रिंग की लंबाई की जांच करने की आवश्यकता है।
स्ट्रिंग को बहुत कम होने से रोकने के लिए PadRight फ़ंक्शन का उपयोग करें, जो आपको चाहिए उसे पकड़ो और सभी स्थानों को एक बयान में अंत से ट्रिम करें।
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
मुझे नहीं पता कि किसी ने इसका उल्लेख क्यों किया। लेकिन यह इसे हासिल करने का सबसे छोटा और सरल तरीका है।
string str = yourString.Remove(n);
n
- वर्णों की संख्या जो आपको चाहिए
उदाहरण
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
पांच व्हाट्सएप वर्णों को जोड़ें फिर पहले पांच को काटें और परिणाम को ट्रिम करें। जितने स्पेस आप अपेंड करते हैं, उतने नंबर से मेल खाना चाहिए जो आप काट रहे हैं। पहले कोष्ठक को शामिल करना सुनिश्चित करें .Substring(0,X)
या आप कुछ भी नहीं जोड़ेंगे।
string str = (yourStringVariable + " ").Substring(0,5).Trim();
इस तकनीक के साथ आपको ArgumentOutOfRangeException
अन्य उत्तरों में उल्लिखित चिंता करने की आवश्यकता नहीं होगी ।
string str = "GoodMorning"
string strModified = str.Substring(0,5);
सी # 8.0: रेंज ऑपरेटरों में ऐसा करने के लिए बस एक नया तरीका है
या जैसा कि मैं उन्हें कॉल करना पसंद करता हूं, पंडों के स्लाइस।
पुराना तरीका:
string newString = oldstring.Substring(0, 5);
नया रास्ता:
string newString = oldstring[..5];
जो पहली नज़र में छोटे कोड के लिए कुछ पठनीयता के एक बहुत बुरे व्यापार की तरह प्रतीत होता है लेकिन नई सुविधा आपको देती है
इस तरह से ठंडा सामान:
var slice1 = सूची [2 .. ^ 3]; // सूची [रेंज। क्रिएट (2, इंडेक्स। क्रेटफ्रॉमएंड (3))]
var slice2 = सूची [.. ^ 3]; // सूची [Range.ToEnd (Index.CreateFromEnd (3))]
var slice3 = सूची [2 ..]; // सूची [Range.FromStart (2)]
var slice4 = सूची [..]; // सूची [रेंज। सभी]
नीचे एक विस्तार विधि दी गई है जो यह जांचती है कि क्या एक स्ट्रिंग की आवश्यकता से अधिक बड़ा है और स्ट्रिंग को परिभाषित अधिकतम मात्रा में चार्ट और एपेंडेंस के लिए छोटा करता है '...'।
public static class StringExtensions
{
public static string Ellipsis(this string s, int charsToDisplay)
{
if (!string.IsNullOrWhiteSpace(s))
return s.Length <= charsToDisplay ? s : new string(s.Take(charsToDisplay).ToArray()) + "...";
return String.Empty;
}
}
में सी # 8.0 तुम इतनी तरह की स्ट्रिंग के पहले पांच पात्रों प्राप्त कर सकते हैं
string str = data[0..5];
यहाँ Indices और Ranges के बारे में कुछ और जानकारी दी गई है
मैं उपयोग करता हूं:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
या वैकल्पिक यदि आप व्हाट्सएप के लिए भी जांच करना चाहते हैं (केवल नल के बजाय):
var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue
या आप String.ToCharArray () का उपयोग कर सकते हैं ।
यह लेता है int startindex
और और int length
के रूप में मानकों और रिटर्न एकchar[]
new string(stringValue.ToCharArray(0,5))
आपको अभी भी यह सुनिश्चित करने की आवश्यकता होगी कि स्ट्रिंग की उचित लंबाई है, अन्यथा यह ए फेंक देगा ArgumentOutOfRangeException
5 से कम होने पर कृपया इस कोड को आज़माएं।
string strModified = str.Substring(0,str.Length>5?5:str.Length);
यदि हम किसी भी क्षेत्र से केवल पहले 5 वर्ण चाहते हैं, तो यह वाम गुण द्वारा प्राप्त किया जा सकता है
Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""
कोड के नीचे प्रयास करें
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
मैंने उपरोक्त उत्तरों की कोशिश की है और मुझे लगता है कि यह सबसे अच्छा है
@item.First_Name.Substring(0,1)
इसमें मुझे स्ट्रिंग का पहला अक्षर मिल सकता है
char
** s के बारे में पूछ रहा है और आप ** चरित्र s के बारे में पूछ रहे हैं । ये एक ही चीज नहीं हैं।𣊾
और𣇞
दो वर्ण हैं जिनका मुझे कल उपयोग करने की आवश्यकता थी जो C # में लिखे गए सॉफ़्टवेयर में विफल रहे क्योंकि मैं प्रोग्रामर कोchar
एक वर्ण के बीच का अंतर नहीं पता था । इस जाल में मत पड़ो!