public class ThaiBahtUtil {
/****
*
* 金额转泰文
* @param strNumber 金额
* @param IsTrillion 默认false
* */
public static String ThaiBahtText(String strNumber, boolean IsTrillion) throws Exception
{
String BahtText = "";
String strTrillion = "";
String[] strThaiNumber = { "ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า", "สิบ" };
String[] strThaiPos = { "", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน" };
String strInteger = strNumber.split("\\.")[0];
String strSatang = "00";
if(strNumber.split("\\.").length==1){
strSatang = "00";
}
if(strNumber.split("\\.").length>1){
if(strNumber.split("\\.")[1].length() < 2){
strSatang=strNumber.split("\\.")[1]+"0";
}else{
strSatang=strNumber.split("\\.")[1];
}
}
if (strInteger.length() > 13)
throw new Exception("รองรับตัวเลขได้เพียง ล้านล้าน เท่านั้น!");
boolean _IsTrillion = strInteger.length() > 7 ;
if (_IsTrillion)
{
System.out.println(strInteger.length());
strTrillion = strInteger.substring(0, strInteger.length() - 6);
System.out.println(strTrillion);
BahtText = ThaiBahtText(strTrillion, _IsTrillion);
strInteger = strInteger.substring(strTrillion.length());
}
int strLength = strInteger.length();
for (int i = 0; i < strInteger.length(); i++)
{
String number = strInteger.substring(i, (i+1));
if (!"0".equals(number))
{
if (i == strLength - 1 && "1".equals(number) && strLength != 1)
{
BahtText += "เอ็ด";
}
else if (i == strLength - 2 && "2".equals(number) && strLength != 1)
{
BahtText += "ยี่";
}
else if (i != strLength - 2 || !"1".equals(number))
{
BahtText += strThaiNumber[Integer.parseInt(number)];
}
BahtText += strThaiPos[(strLength - i) - 1];
}
}
if (IsTrillion)
{
return BahtText + "ล้าน";
}
if(!"0".equals(strInteger))
{
BahtText += "บาท";
}
if ("00".equals(strSatang))
{
BahtText += "ถ้วน";
}else
{
strLength = strSatang.length();
for (int i = 0; i < strSatang.length(); i++)
{
String number = strSatang.substring(i, (i+1));
if (!"0".equals(number))
{
if (i == strLength - 1 && "1".equals(number) && !"0".equals(strSatang.substring(0,1)))
{
BahtText += "เอ็ด";
}
else if (i == strLength - 2 && "2".equals(number) && !"0".equals(strSatang.substring(0,1)))
{
BahtText += "ยี่";
}
else if (i != strLength - 2 || !"1".equals(number))
{
BahtText += strThaiNumber[Integer.parseInt(number)];
}
BahtText += strThaiPos[(strLength - i) - 1];
}
}
BahtText += "สตางค์";
}
return BahtText;
}
}