using UnityEngine; using System.Collections; using System.Text; using System; public class StringUtility { public static readonly string[] splitSeparator = new string[] { "|" }; // 新增:为循环调用的优化版本(复用StringBuilder) [ThreadStatic] private static StringBuilder _threadLocalStringBuilder; /// /// 获取当前线程的StringBuilder /// private static StringBuilder GetThreadLocalStringBuilder() { if (_threadLocalStringBuilder == null) { _threadLocalStringBuilder = new StringBuilder(); } return _threadLocalStringBuilder; } /// /// 智能字符串拼接方法,自动选择最优策略 /// - 2-4个字符串:直接使用 string.Concat() (最高性能) /// - 5个以上字符串:使用线程本地 StringBuilder 复用 (循环优化) /// public static string Concat(params string[] _objects) { // 少量字符串直接使用Concat,性能最佳 if (_objects.Length <= 4) { return string.Concat(_objects); } // 大量字符串使用线程本地StringBuilder,避免重复创建 var sb = GetThreadLocalStringBuilder(); sb.Clear(); foreach (string str in _objects) { sb.Append(str); } return sb.ToString(); } // AI提醒实际在现代编辑器中,低于4个字符串的+ 操作符的性能和 string.Concat 几乎相同,会被智能优化为 string.Concat // 添加常用2个字符串拼接的优化版本 public static string Contact(string str1, string str2) { return string.Concat(str1, str2); } // 添加常用3个字符串拼接的优化版本 public static string Contact(string str1, string str2, string str3) { return string.Concat(str1, str2, str3); } // 添加常用4个字符串拼接的优化版本 public static string Contact(string str1, string str2, string str3, string str4) { return string.Concat(str1, str2, str3, str4); } public static string FormatSpeed(float speed) { if (speed > 1048576f) { return Contact((speed / 1048576f).ToString("f1"), " M/S"); } else if (speed > 1024f) { return Contact((speed / 1024f).ToString("f1"), " KB/S"); } else { return Contact(speed.ToString("f1"), " B/S"); } } }