using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Azylee.Core.DataUtils.StringUtils
{
public class NameFormat
{
///
/// 转换为驼峰命名
///
///
///
public static string ToCamelCase(string s)
{
string result = "";
if (Str.Ok(s))
{
if (s.IndexOf('_') >= 0)
{
bool upFlag = false;
char[] cArray = s.ToArray();
foreach (var c in cArray)
{
if (c == '_')
{
upFlag = true;
continue;
}
if (upFlag)
{
result += c.ToString().ToUpper();
upFlag = false;
}
else
{
result += c.ToString().ToLower();
}
}
}
else
{
result = s;
}
}
return result;
}
///
/// 转换为驼峰命名(首字母大写)
///
///
///
public static string ToUpCamelCase(string s)
{
string result = "";
if (Str.Ok(s))
{
bool upFlag = false;
char[] cArray = s.ToArray();
for (int i = 0; i < cArray.Length; i++)
{
char c = cArray[i];
if (c == '_')
{
upFlag = true;
continue;
}
if (upFlag || i == 0)
{
result += c.ToString().ToUpper();
upFlag = false;
}
else
{
result += c.ToString().ToLower();
}
}
}
return result;
}
///
/// 转换为下划线命名
///
///
///
public static string ToUnderline(string s)
{
string result = "";
if (Str.Ok(s))
{
char[] cArray = s.ToArray();
foreach (var c in cArray)
{
char cUpper = char.ToUpper(c);
char cLower = char.ToLower(c);
if (c >= 'A' && c <= 'Z')
{
result += "_";
}
result += char.ToLower(c);
}
}
return result;
}
public static string Format(string s, NameType nameType)
{
switch (nameType)
{
case NameType.CAMEL:
return ToCamelCase(s);
case NameType.UPPER_CAMEL:
return ToUpCamelCase(s);
case NameType.UNDER_LINE:
return ToUnderline(s);
case NameType.NONE:
default:
return s;
}
}
}
}