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

本文关键字:字符串 空格 替换 字符 如果 不够 | 更新日期: 2023-09-27 18:31:30

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

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

我该怎么做。

当前代码在字符串不够长时引发 extion。

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

使用 String.PadRight

myString.PadRight(3, ' ');
// do SubString here..

您还可以创建一个 .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);
}

用法:

myString.Left(3);

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

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 语句中内联它们。

你可以使用这个肮脏的黑客:

var res = (myStr+"    ").Substring(...);