我正在尝试比较字符串的前3个字符,我正在尝试使用子字符串然后进行比较。
从输入文件中读取字符串,字符串可能不是3个字符长。如果一个字符串不是3个字符长,我希望substring方法用空格替换空字符。
我将如何做到这一点。
当字符串不够长时,当前代码会抛出一个exeption。
答案 0 :(得分:9)
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);
答案 1 :(得分:5)
在调用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语句中内嵌它们。
答案 2 :(得分:4)
你可以使用这个肮脏的黑客:
var res = (myStr+" ").Substring(...);