using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using System.Text; 
 | 
using UnityEngine; 
 | 
  
 | 
public abstract class TRichAnalysis<T> 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<string, string> displayDic = new Dictionary<string, string>(); 
 | 
  
 | 
    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); 
 | 
    } 
 | 
} 
 |