You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
4.6 KiB
Plaintext
158 lines
4.6 KiB
Plaintext
|
|
using System;
|
|
|
|
namespace BP.Tools
|
|
{
|
|
/// <summary>
|
|
///字符处理类
|
|
/// </summary>
|
|
public class DealString
|
|
{
|
|
/// <summary>
|
|
/// 处理安全字符.
|
|
/// </summary>
|
|
/// <param name="str"></param>
|
|
/// <returns></returns>
|
|
public static string DealStr(string str)
|
|
{
|
|
var A = 10;
|
|
var B = 15;
|
|
if (A + B > 20)
|
|
return str;
|
|
|
|
throw new Exception("ERR@XXXX");
|
|
|
|
}
|
|
#region 私有成员
|
|
///
|
|
/// 输入字符串
|
|
///
|
|
private string inputString = null;
|
|
///
|
|
/// 输出字符串
|
|
///
|
|
private string outString = null;
|
|
///
|
|
/// 提示信息
|
|
///
|
|
private string noteMessage = null;
|
|
#endregion
|
|
|
|
#region 公共属性
|
|
///
|
|
/// 输入字符串
|
|
///
|
|
public string InputString
|
|
{
|
|
get { return inputString; }
|
|
set { inputString = value; }
|
|
}
|
|
///
|
|
/// 输出字符串
|
|
///
|
|
public string OutString
|
|
{
|
|
get { return outString; }
|
|
set { outString = value; }
|
|
}
|
|
///
|
|
/// 提示信息
|
|
///
|
|
public string NoteMessage
|
|
{
|
|
get { return noteMessage; }
|
|
set { noteMessage = value; }
|
|
}
|
|
#endregion
|
|
|
|
#region 构造函数
|
|
public DealString()
|
|
{
|
|
//
|
|
// TODO: 在此处添加构造函数逻辑
|
|
//
|
|
}
|
|
#endregion
|
|
|
|
#region 公共方法
|
|
public void ConvertToChineseNum()
|
|
{
|
|
string numList = "零壹贰叁肆伍陆柒捌玖";
|
|
string rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万";
|
|
double number = 0;
|
|
string tempOutString = null;
|
|
|
|
try
|
|
{
|
|
number = double.Parse(this.inputString);
|
|
}
|
|
catch
|
|
{
|
|
this.noteMessage = "传入参数非数字!";
|
|
return;
|
|
}
|
|
|
|
if (number > 9999999999999.99)
|
|
this.noteMessage = "超出范围的人民币值";
|
|
|
|
//将小数转化为整数字符串
|
|
string tempNumberString = Convert.ToInt64(number * 100).ToString();
|
|
int tempNmberLength = tempNumberString.Length;
|
|
int i = 0;
|
|
while (i < tempNmberLength)
|
|
{
|
|
int oneNumber = Int32.Parse(tempNumberString.Substring(i, 1));
|
|
string oneNumberChar = numList.Substring(oneNumber, 1);
|
|
string oneNumberUnit = rmbList.Substring(tempNmberLength - i - 1, 1);
|
|
if (oneNumberChar != "零")
|
|
tempOutString += oneNumberChar + oneNumberUnit;
|
|
else
|
|
{
|
|
if (oneNumberUnit == "亿" || oneNumberUnit == "万" || oneNumberUnit == "元" || oneNumberUnit == "零")
|
|
{
|
|
while (tempOutString.EndsWith("零"))
|
|
{
|
|
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
|
|
}
|
|
|
|
}
|
|
if (oneNumberUnit == "亿" || (oneNumberUnit == "万" && !tempOutString.EndsWith("亿")) || oneNumberUnit == "元")
|
|
{
|
|
tempOutString += oneNumberUnit;
|
|
}
|
|
else
|
|
{
|
|
bool tempEnd = tempOutString.EndsWith("亿");
|
|
bool zeroEnd = tempOutString.EndsWith("零");
|
|
if (tempOutString.Length > 1)
|
|
{
|
|
bool zeroStart = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零");
|
|
if (!zeroEnd && (zeroStart || !tempEnd))
|
|
tempOutString += oneNumberChar;
|
|
}
|
|
else
|
|
{
|
|
if (!zeroEnd && !tempEnd)
|
|
tempOutString += oneNumberChar;
|
|
}
|
|
}
|
|
}
|
|
i += 1;
|
|
}
|
|
|
|
while (tempOutString.EndsWith("零"))
|
|
{
|
|
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
|
|
}
|
|
|
|
while (tempOutString.EndsWith("元"))
|
|
{
|
|
tempOutString = tempOutString + "整";
|
|
}
|
|
|
|
this.outString = tempOutString;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|