C# 是否可以缩短此代码?如果字符串为null或在开头有特定值
我希望它在字符串s1的开头插入一个字母b,如果s1为空,或者s1在开头有一个字母a,我希望它在字符串s1的开头插入一个字母b,如果s1为空或开头没有字母a,则删除第一个字母,如果它在开头有字母a,但如果我在第一个if语句中使用| |,当s1为空时,我将获得System.IndexOutOfRangeException。有没有办法缩短这个时间 编辑:C# 是否可以缩短此代码?如果字符串为null或在开头有特定值,c#,C#,我希望它在字符串s1的开头插入一个字母b,如果s1为空,或者s1在开头有一个字母a,我希望它在字符串s1的开头插入一个字母b,如果s1为空或开头没有字母a,则删除第一个字母,如果它在开头有字母a,但如果我在第一个if语句中使用| |,当s1为空时,我将获得System.IndexOutOfRangeException。有没有办法缩短这个时间 编辑: 我把问题完全搞砸了。你可以试试这样的方法: if (!string.IsNullOrEmpty(s1)) { if (s1[0] == 'a
我把问题完全搞砸了。你可以试试这样的方法:
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 = (string.IsNullOrEmpty(s1) || s1[0] != 'a') ? s1.Insert(0, "b") : s1.Remove(0, 1);
不是你想要的答案,但是如果s1为空,你的else子句将失败。。。因为s1为空。无法将字符插入空字符串。请使用Try…Catch块捕获空字符串并修剪空字符串。
if (!string.IsNullOrEmpty(s1))
{
if (s1.StartsWith("a"))
{
s1 = "b" + s1.Substring(1);
}
}
else
s1 = "b";