是否可以缩短此代码?如果字符串为null或开头具有特定值

时间:2019-11-22 03:41:56

标签: c#

if (!string.IsNullOrEmpty(s1))
{
    if (s1[0] == 'a')
        s1 = s1.Remove(0, 1);
    else
        s1 = s1.Insert(0, "b");
}
else
    s1 = s1.Insert(0, "b");

如果s1为null或s1开头有字母“ a”,我希望它在字符串s1的开头插入字母“ b” 我希望它在字符串s1的开头插入字母“ b”如果字符串s1为空或开头没有“ a”,则在字符串s1的开头,如果开头有“ a”,但是如果我使用||,则删除第一个字母在第一个if语句中,当s1为 null 为空时,我将获得System.IndexOutOfRangeException。有什么办法可以缩短这个时间?

编辑: 我完全把问题弄糟了。

2 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

s1 = (string.IsNullOrEmpty(s1) || s1[0] != 'a') ? s1.Insert(0, "b") : s1.Remove(0, 1);

答案 1 :(得分:0)

这是简单的方法:

if (!string.IsNullOrEmpty(s1))
            {
                if (s1.StartsWith("a"))
                {
                    s1 = "b" + s1.Substring(1);
                }                
            }
else
   s1 = "b";