using OTSRptPeriodicTable; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OTSIncAReportApp._1_UI { public class ElementSubscript { List subscripts = GetListsubscript(); private static List GetListsubscript() { List List_subscript = new List(); subscript ls_subscript = new subscript(); ls_subscript = new subscript(); ls_subscript.Name = "0"; ls_subscript.NumEntity = "₀"; ls_subscript.HexEntity = "\x2080"; ls_subscript.CharactrName = "SUBSCRIPT ZERO"; List_subscript.Add(ls_subscript); ls_subscript = new subscript(); ls_subscript.Name = "1"; ls_subscript.NumEntity = "₁"; ls_subscript.HexEntity = "\x2081"; ls_subscript.CharactrName = "SUBSCRIPT ONE"; List_subscript.Add(ls_subscript); ls_subscript = new subscript(); ls_subscript.Name = "2"; ls_subscript.NumEntity = "₂"; ls_subscript.HexEntity = "\x2082"; ls_subscript.CharactrName = "SUBSCRIPT TWO"; List_subscript.Add(ls_subscript); ls_subscript = new subscript(); ls_subscript.Name = "3"; ls_subscript.NumEntity = "₃"; ls_subscript.HexEntity = "\x2083"; ls_subscript.CharactrName = "SUBSCRIPT THREE"; List_subscript.Add(ls_subscript); ls_subscript = new subscript(); ls_subscript.Name = "4"; ls_subscript.NumEntity = "₄"; ls_subscript.HexEntity = "\x2084"; ls_subscript.CharactrName = "SUBSCRIPT FOUR"; List_subscript.Add(ls_subscript); ls_subscript = new subscript(); ls_subscript.Name = "5"; ls_subscript.NumEntity = "₅"; ls_subscript.HexEntity = "\x2085"; ls_subscript.CharactrName = "SUBSCRIPT FIVE"; List_subscript.Add(ls_subscript); ls_subscript = new subscript(); ls_subscript.Name = "6"; ls_subscript.NumEntity = "₆"; ls_subscript.HexEntity = "\x2086"; ls_subscript.CharactrName = "SUBSCRIPT SIX"; List_subscript.Add(ls_subscript); ls_subscript = new subscript(); ls_subscript.Name = "7"; ls_subscript.NumEntity = "₇"; ls_subscript.HexEntity = "\x2087"; ls_subscript.CharactrName = "SUBSCRIPT SEVEN"; List_subscript.Add(ls_subscript); ls_subscript = new subscript(); ls_subscript.Name = "8"; ls_subscript.NumEntity = "₈"; ls_subscript.HexEntity = "\x2088"; ls_subscript.CharactrName = "SUBSCRIPT EIGHT"; List_subscript.Add(ls_subscript); ls_subscript = new subscript(); ls_subscript.Name = "9"; ls_subscript.NumEntity = "₉"; ls_subscript.HexEntity = "\x2089"; ls_subscript.CharactrName = "SUBSCRIPT NINE"; List_subscript.Add(ls_subscript); return List_subscript; } /// /// 将数字转换成下标转义符 /// /// /// private string Getsubscript(string str) { if (subscripts.Count==0) { subscripts = GetListsubscript(); } for (int i=0;i< subscripts.Count;i++) { if (subscripts[i].Name==str) { return subscripts[i].HexEntity; } } return ""; } public string Getsubscriptstring(string str) { string[] strarray = str.Split('-'); string strSubscript = ""; for (int j=0;j< strarray.Length;j++) { char[] strCharArr = strarray[j].ToCharArray(); string Escape = ""; for (int i = 0; i < strCharArr.Length; i++) { if (i < 2) { Escape = Escape + strCharArr[i]; continue; } else { if (System.Text.RegularExpressions.Regex.IsMatch(strCharArr[i].ToString(), @"^[+-]?\d*[.]?\d*$")) { Escape = Escape + Getsubscript(strCharArr[i].ToString()); } else { Escape = Escape + strCharArr[i]; } } } strSubscript = strSubscript + Escape+"-"; } string[] vs = strSubscript.Split('-'); string output = ""; if (vs.Length>2) { for (int i = 0; i < vs.Length - 1; i++) { if (i == vs.Length - 2) { output = output + vs[i].ToString(); } else { output = output + vs[i].ToString() + "-"; } } } else { for (int i = 0; i < vs.Length - 1; i++) { output = output + vs[i].ToString(); } } return output; } } public class subscript { string _Name;//正常显示字符 string _NumEntity;// string _HexEntity;//十六进制 string _CharactrName; public string Name { get { return _Name; } set { _Name = value; } } public string NumEntity { get { return _NumEntity; } set { _NumEntity = value; } } public string HexEntity { get { return _HexEntity; } set { _HexEntity = value; } } public string CharactrName { get { return _CharactrName; } set { _CharactrName = value; } } } }