using System.Collections; using System.Collections.Generic; using System.Text; using UnityEngine; public abstract class TRichAnalysis where T:class,new() { private static T _inst = null; public static T Inst { get { if (_inst == null) { _inst = new T(); } return _inst; } } protected static StringBuilder m_StringBuilder = new StringBuilder(); protected static Dictionary displayDic = new Dictionary(); public abstract string Analysis(string val,bool IsRich); public abstract string CalculateTextIndex(string val,int index); protected static readonly char SPLITEVENT = '|'; protected static readonly char SPLITDATA = ' '; protected static readonly char SPLITVALUE = '='; private static string[] poolStrs=new string[1]; protected string[] GetSplitEvent(string val) { return val.Split(SPLITEVENT); } protected string[] GetSplitData(string val) { return val.Split(SPLITDATA); } protected string[] GetSplitValue(string val) { var newVal = val.Replace("=", ""); var count = val.Length - newVal.Length; if (count == 1 && WordAnalysis.Color_Start_Regex.IsMatch(val)) { poolStrs[0] = val; return poolStrs; } return val.Split(new char[] { SPLITVALUE }, 2); } }