/******************************************************************* * Copyright(c) 2019 DefaultCompany * All rights reserved. * * 文件名称: NewBehaviourScript.cs * 简要描述: * * 创建日期: 2019/08/09 14:07:07 * 作者: SilenceT * 说明: ******************************************************************/ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; public class LUtilitys : MonoBehaviour { /// /// 解析Vector3 /// /// /// 分隔符 /// public static Vector3 ParseVector3(string val, char separator = '/') { if (val.Contains("(")) val.Replace("(", ""); if (val.Contains(")")) val.Replace(")", ""); if (string.IsNullOrEmpty(val) || val == "0") return Vector3.zero; val = val.Replace("(", string.Empty).Replace(")", string.Empty); string[] xyz = val.Split(separator); if (xyz.Length < 3) return Vector3.zero; float x = (float)System.Convert.ChangeType(xyz[0], typeof(float)); float y = (float)System.Convert.ChangeType(xyz[1], typeof(float)); float z = (float)System.Convert.ChangeType(xyz[2], typeof(float)); return new Vector3(x, y, z); } /// /// Vector3转成字符串 /// /// /// 分隔符 /// public static string ParseString(Vector3 vector3) { return vector3.x.ToString() + "/" + vector3.y.ToString() + "/" + vector3.z.ToString(); } /// /// 将数字转换为中文数字 /// /// 阿拉伯数字 /// 转换完成后的中文数字(目前只支持到20) public static string DigitalToChinese(int arabicNumerals) { string tmpStr = string.Empty; if (arabicNumerals <= 10 && arabicNumerals >= 0) { tmpStr = NumberChineseMatch(arabicNumerals); } else if (arabicNumerals < 100 && arabicNumerals > 10) { char[] tmpArray = arabicNumerals.ToString().ToCharArray(); tmpStr = int.Parse(tmpArray[0].ToString()) == 1 ? "十" + NumberChineseMatch(int.Parse(tmpArray[1].ToString())) : NumberChineseMatch(int.Parse(tmpArray[0].ToString())) + "十" + (int.Parse(tmpArray[1].ToString()) == 0 ? "" : NumberChineseMatch(int.Parse(tmpArray[1].ToString()))); } return tmpStr; } /// /// 阿拉伯数字和向中文转换匹配 /// /// /// private static string NumberChineseMatch(int number) { string tmpStr = string.Empty; switch (number) { case 0: tmpStr = "零"; break; case 1: tmpStr = "一"; break; case 2: tmpStr = "二"; break; case 3: tmpStr = "三"; break; case 4: tmpStr = "四"; break; case 5: tmpStr = "五"; break; case 6: tmpStr = "六"; break; case 7: tmpStr = "七"; break; case 8: tmpStr = "八"; break; case 9: tmpStr = "九"; break; case 10: tmpStr = "十"; break; default: break; } return tmpStr; } //数字1-9转换为中文数字 public string OneBitNumberToChinese(string num) { string numStr = "123456789"; string chineseStr = "一二三四五六七八九"; string result = ""; int numIndex = numStr.IndexOf(num); if (numIndex > -1) { result = chineseStr.Substring(numIndex, 1); } return result; } //数字1-9转换为中文数字 public string OneBitNumberToChinese(int num) { return OneBitNumberToChinese(num.ToString()); } //阿拉伯数字转换为中文数字(1-99999)递归实现 public string NumberToChineseByRecursion(int num) { string strNum = num.ToString(); string result = ""; if (strNum.Length == 1) {//个 result += OneBitNumberToChinese(num); return result; } else if (strNum.Length == 2) {// 十 if (strNum.Substring(0, 1) == "1") result += "十"; else result += (OneBitNumberToChinese(num / 10) + "十"); result += NumberToChinese(num % 10); } else if (strNum.Length == 3) {// 百 result += (OneBitNumberToChinese(num / 100) + "百"); if ((num % 100).ToString().Length < 2 && num % 100 != 0) result += "零"; result += NumberToChinese(num % 100); } else if (strNum.Length == 4) {// 千 result += (OneBitNumberToChinese(num / 1000) + "千"); if ((num % 1000).ToString().Length < 3 && num % 1000 != 0) result += "零"; result += NumberToChinese(num % 1000); } else if (strNum.Length == 5) {// 万 result += (OneBitNumberToChinese(num / 10000) + "万"); if ((num % 10000).ToString().Length < 4 && num % 10000 != 0) result += "零"; result += NumberToChinese(num % 10000); } return result; } //阿拉伯数字转换为中文数字(0-99999) public string NumberToChinese(int num) { string strNum = num.ToString(); string result = ""; if (strNum.Length == 5) {//万 result += OneBitNumberToChinese(strNum.Substring(0, 1)) + "万"; strNum = strNum.Substring(1); } if (strNum.Length == 4) {//千 string secondBitNumber = strNum.Substring(0, 1); if (secondBitNumber == "0") result += "零"; else result += OneBitNumberToChinese(secondBitNumber) + "千"; strNum = strNum.Substring(1); } if (strNum.Length == 3) {//百 string hundredBitNumber = strNum.Substring(0, 1); if (hundredBitNumber == "0" && result.Substring(result.Length - 1) != "零") result += "零"; else result += OneBitNumberToChinese(hundredBitNumber) + "百"; strNum = strNum.Substring(1); } if (strNum.Length == 2) {//十 string hundredBitNumber = strNum.Substring(0, 1); if (hundredBitNumber == "0" && result.Substring(result.Length - 1) != "零") result += "零"; else if (hundredBitNumber == "1" && string.IsNullOrEmpty(result)) result += "十";//10->十 else result += OneBitNumberToChinese(hundredBitNumber) + "十"; strNum = strNum.Substring(1); } if (strNum.Length == 1) {//个 if (strNum == "0") result += "零"; else result += OneBitNumberToChinese(strNum); } //100->一百零零 if (!string.IsNullOrEmpty(result) && result != "零") result = result.TrimEnd('零'); return result; } }