子串,如果字符串不够长,则用空格替换字符

zaz*_*aza 4 c# substring

我正在尝试比较一个字符串的前3个字符,我正在尝试使用子字符串然后比较.

字符串是从输入文件中读取的,字符串可能不是3个字符长.如果一个字符串不是3个字符长,我希望substring方法用空格替换空字符.

我该怎么做呢?

当字符串不够长时,当前代码抛出一个exeption.

mel*_*okb 9

使用String.PadRight

myString.PadRight(3, ' ');
// do SubString here..
Run Code Online (Sandbox Code Playgroud)

您还可以创建一个.Left扩展方法,当字符串不够大时不会抛出异常:

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);
}
Run Code Online (Sandbox Code Playgroud)

用法:

myString.Left(3);
Run Code Online (Sandbox Code Playgroud)


Dan*_*gby 5

在调用Substring()之前使用String.PadRight()方法之一:

string subString = myString.PadRight(3).Substring(0,3);
Run Code Online (Sandbox Code Playgroud)

如果你像上面一样使用带有一个参数的重载,它将插入空格.

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
}
Run Code Online (Sandbox Code Playgroud)

我使用了单独的变量,因为它更具可读性,但如果你愿意,可以在if语句中内嵌它们.