在项目开发中为了视觉显示的效果,有时候会需要将数字转化为中文输入(eg:101转化为一百零一),这边写了一个小方法,基本可以实现转换效果
public string ChangeLevelInput(int level)
{
string[] numberStr = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
string[] unitStr = { "十", "百", "千", "万" };
string levelStr = "";
List<int> nums = new List<int>();
while(level>0)
{
int num = level % 10;
level /= 10;
nums.Add(num);
}
if(nums.Count == 2 && nums[1] == 1)
{
if(nums[0] == 0)
{
levelStr = "十";
}
else
{
levelStr = "十" + numberStr[nums[0]];
}
return levelStr;
}
int number = -1;
bool isContinueZero = false;
for(int i = nums.Count -1; i>=0; i--)
{
number = nums[i];
if(number!=0)
{
isContinueZero = false;
levelStr += numberStr[nums[i]];
if(i>0)
{
levelStr += unitStr[i-1];
}
}
else
{
if(i != 0 && !isContinueZero)
{
bool allZero = true;
for(int j = i;j >= 0;j--)
{
if(nums[j]!= 0)
{
allZero = false;
break;
}
}
if(!allZero)
{
levelStr += numberStr[0].ToString();
isContinueZero = true;
}
}
}
}
return levelStr;
}