凌乱的单线:
String name = "_distance";
name = (name.StartsWith("_") ? (name.Length > 1 ? name.Substring(1, 1).ToUpper() + (name.Length > 2 ? name.Substring(2) : "") : "") : name);
更清晰的单线版本:
String name = "_distance";
if (name.StartsWith("_"))
{
if (name.Length > 1)
{
name = name.Substring(1, 1).ToUpper() + (name.Length > 2 ? name.Substring(2) : "");
}
else
{
name = "";
}
}
扩展版本:
public static String ParseCapitalize(this String str)
{
if (str == null)
return "";
if (str.StartsWith("_"))
{
if (str.Length > 1)
{
return str.Substring(1, 1).ToUpper() + (str.Length > 2 ? str.Substring(2) : "");
}
else
{
return "";
}
}
return str;
}
//Usage:
String s = "_this is a string";
if(!String.IsNullOrEmpty(s))
s = s.ParseCapitalize();
这些片段将处理:
"" => ""
“_” => “”
“_a” => “A”
“_asd” => “Asd”
“asd” => “asd”
(仅用于扩展) null => ""