我想比較字符串的前3個字符,我試圖使用子串然後比較。子串,如果字符串不夠長,用空格替換字符
從輸入文件讀取字符串,並且字符串可能不是3個字符長。如果一個字符串不是3個字符長,我希望子字符串方法用空格替換空字符。
我該如何去做這件事。
當字符串不夠長時,當前代碼會拋出一個exeption。
我想比較字符串的前3個字符,我試圖使用子串然後比較。子串,如果字符串不夠長,用空格替換字符
從輸入文件讀取字符串,並且字符串可能不是3個字符長。如果一個字符串不是3個字符長,我希望子字符串方法用空格替換空字符。
我該如何去做這件事。
當字符串不夠長時,當前代碼會拋出一個exeption。
myString.PadRight(3, ' ');
// do SubString here..
您還可以創建一個.Left
extension method不拋出一個異常時,該字符串不是足夠大:
public static string Left(this string s, int len)
{
if (len == 0 || s.Length == 0)
return "";
else if (s.Length <= len)
return s;
else
return s.Substring(0, len);
}
用法:
myString.Left(3);
您可以使用這個骯髒的黑客:
var res = (myStr+" ").Substring(...);
使用String.PadRight() methods的一個前調用子串():
string subString = myString.PadRight(3).Substring(0,3);
如果您使用過載有一個參數像我上面那樣,它會插入空格。
string subString1 = string1.PadRight(3).Substring(0,3);
string subString2 = string2.PadRight(3).Substring(0,3);
if (String.Compare(subString1, subString2) == 0)
{
// if equal
}
else
{
// not equal
}
我用不同的變量,因爲它更可讀一點,但你可以在網上他們在if語句,如果你想。
+1我喜歡這個骯髒的黑客,使用它很多:) – mellamokb 2012-04-17 01:30:14
@mellamokb我使用它很多,但我想我會切換到「PadRight」(我剛剛提出了你的答案)。 – dasblinkenlight 2012-04-17 01:32:01