2011-05-29 11 views
5

मेरे पास एक विधि है जो एक स्ट्रिंग को स्वीकार करती है और इसे बिल्कुल 5 वर्णों के साथ स्ट्रिंग प्राप्त करनी होती है।
एक संभावना है कि उपयोगकर्ता स्ट्रिंग को 5 वर्णों के साथ सम्मिलित करेगा - उस स्थिति में मैं बाईं ओर ट्रिम करना चाहता हूं।
एक संभावना है कि उपयोगकर्ता 5 वर्णों के साथ स्ट्रिंग डालेगा - उस स्थिति में मैं बाएं पैड करना चाहता हूं।एक स्ट्रिंग विधि में ट्रिम और पैड

मुझे पता है कि मैं इसे/अन्य स्थिति के साथ कर सकता हूं लेकिन मुझे आश्चर्य है कि स्ट्रिंग क्लास में ऐसे मामलों से निपटने के लिए कुछ मददगार हो सकता है।

आपको क्या लगता है?

उत्तर

6

5 वर्णों तक पैडिंग करने का प्रयास करें और फिर 5 वर्णों तक ट्रिम करें। इससे कोई फर्क नहीं पड़ता कि पैडिंग इसे बहुत लंबा कर सकती है क्योंकि ट्रिमिंग इसे ठीक करेगी! :-)

+1

स्ट्रिंग पैडड ट्रिम्डस्ट्रिंग = इनपुटस्ट्रिंग.पैडराइट (150) .Substring (0,150); – danfolkes

-1

मान लिया जाये कि आप चरित्र 'ए' के ​​साथ पैड करना चाहते हैं, कैसे के बारे में:

("AAAAA" + st).Substring(st.Length) 
// Note: padded string has length (st.Length + 5) 
// ... so substring offset is ((st.Length+5)-5) = st.Length 
(बाईं ओर)

, या:

(st + "AAAAA").Substring(0,5) 
(दाईं ओर)

?

-6

इस प्रयास करें:

string str = "abcdefghjxd"; 
string split = str.Substring(0, 5); 
+0

आधे प्रश्न का उत्तर नहीं देता है। Downvoted। – EJP

4

यह आपरेशन मुद्दे का एक सरल आदेश, पैड पहले तो आकार को ट्रिम है ... की तरह

string hi = "hello world"; //or try = "hi"; 
hi = hi.PadLeft(5, '0'); 
hi = hi.Substring(hi.Length - 5); 
Console.WriteLine(hi); 
2

इस शाखाओं, मुझे यकीन है कि हो सकता है, लेकिन स्पष्ट रूप से लगता है कि यह काफी साफ है:

var maxLength = 5; 
var paddingChar = 'x'; 

input = input.Length > maxLength ? 
    input.Remove(0, input.Length - maxLength) : 
    input.PadLeft(maxLength, paddingChar); 
0

आप इस तरह के रूप में PadRight (या PadLeft) का एक विस्तार बना सकते हैं:

public static string PadRight2(this string value, int exactWidth) 
{ 
    return value.PadRight(exactWidth).Substring(0, exactWidth); 
} 
संबंधित मुद्दे