Rah*_*ulD 6 c# asp.net string c#-4.0
我想检索给定奇数长度字符串的中间三个字符.例如.如果
string original = "India" // expected output - "ndi"
string original = "America" // expected output - "eri"
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码,它按照要求工作,但我想知道有没有更好的方法来做同样的事情?
public string GetMiddleString (string original)
{
string trimmed = string.Empty;
int midCharIndex = (original.Length / 2);
if ((original.Length) % 2 != 0)
{
trimmed = original.Substring (midCharIndex - 1, 3);
}
else
{
trimmed = original;
}
return trimmed;
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*lis 12
而不是如果你可以使用三元运算符
return (!String.IsNullOrEmpty(original)
&& original.Length % 2 != 0
&& original.Length >= 3)
? original.Substring((original.Length / 2) - 1, 3)
: original;
Run Code Online (Sandbox Code Playgroud)
这将是所需方法中唯一的代码.添加了&& original.Length >= 3以防止出错.
这就是我想出来的.并非它真的改变了你的代码
public string GetMiddleString(string original)
{
if (original.Length % 2 != 0 && original.Length >= 3)
return original.Substring(original.Length / 2 - 1, 3);
return original;
}
Run Code Online (Sandbox Code Playgroud)
我一定要检查字符串的长度,这样就不会有任何异常.
可以随时去LINQ!
if(!string.IsNullOrWhiteSpace(s) && s.Length > 4 && (s.Length % 2) != 0) {
return new string(s.Skip((s.Length / 2) - 1).Take(3).ToArray());
}
else { return string.Empty; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4395 次 |
| 最近记录: |