2011-05-29 20 views
5

Bir dizeyi kabul eden bir yöntem var ve tam olarak 5 karakter içeren bir dize almak zorunda.
Kullanıcının 5 karakterden daha fazla bir karakterle dize ekleme olasılığı vardır - bu durumda solu kırpmak istiyorum.
Kullanıcının 5 karakterden daha azıyla dize ekleme olasılığı vardır - bu durumda sola kaydırmak istiyorum.Döşeme ve altlık

Eğer/else koşulu ile yapabileceğimi biliyorum ama belki de string sınıfının böyle bir durumda tek bir komutla başa çıkmak için yararlı bir şeyleri olduğunu düşünüyorum.

Ne düşünüyorsunuz?

cevap

6

5 karaktere kadar dolgu yapmayı ve 5 karaktere kırpmayı deneyin. Düzeltmenin bunu düzeltmesi çok zor olabilir, çünkü düzeltme bunu düzeltir! :-)

+1

Dize yastığıTrimmedString = inputString.PadRight (150) .Substring (0,150); – danfolkes

-1

nasıl, sen karakteri 'A' ile ped istiyorum varsayarsak:

("AAAAA" + st).Substring(st.Length) 
// Note: padded string has length (st.Length + 5) 
// ... so substring offset is ((st.Length+5)-5) = st.Length 
(solda)

veya: (sağda)

(st + "AAAAA").Substring(0,5) 

?

-6

bu deneyin:

Bu ped ilk sonra boyuta operasyonlar sorunun basit bir düzen jant
string str = "abcdefghjxd"; 
string split = str.Substring(0, 5); 
+0

Sorunun yarısını cevaplamıyor. Downvoted. – EJP

4

... gibi

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

Bu dalları, ben açıkçası emin olmak ancak bunlarla yeterince düzgün olduğunu düşünüyorum:

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

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

Aşağıdaki gibi PadRight (veya PadLeft) bir uzantısı oluşturabilirsiniz:

public static string PadRight2(this string value, int exactWidth) 
{ 
    return value.PadRight(exactWidth).Substring(0, exactWidth); 
} 
İlgili konular