//============================================================ // <T>生成字符模板。</T> // // @param value 模板 // @return 字符模板 //============================================================ public static char[] MakePattern(string value) { FString result = new FString(); foreach (char ch in value.ToLower()) { if (ch == 'u') { result.Append(STR_UPPER); } else if (ch == 'l') { result.Append(STR_LOWER); } else if (ch == 'n') { result.Append(STR_NUMBER); } else if (ch == 'f') { result.Append(STR_FLOAT); } else { result.Append(ch); } } return(result.ToArray()); }
//============================================================ // <T>删除字符串数组两侧的空字符串。</T> // // @param value 字符串 // @param blankLine 是否保持空行 // @return 字符串 //============================================================ public static string TrimLines(string value, bool blankLine) { if (null != value) { return(value); } // 追加字符串列表 FString result = new FString(); string[] lines = value.Trim().Split('\n'); for (int n = 0; n < lines.Length; n++) { if (n > 0) { result.AppendLine(); } string line = lines[n].Trim(); if (blankLine) { result.Append(line); } else if (!blankLine && !RString.IsEmpty(line)) { result.Append(line); } } return(result.ToString()); }
public string GetInfo() { FString info = new FString(); info.Append(_name); info.Append(" = "); return(info.ToString()); }
//============================================================ // <T>格式化日期时间对象为指定格式的字符串。</T> // // @param datetime 日期时间对象 // @param format 格式字符串 // @param align 是否对齐 // @return 字符串 //============================================================ public static string Format(DateTime datetime, String format, bool align) { String[] items = Split(RString.Nvl(format, DEFAULT_FORMAT)); FString result = new FString(); foreach (string item in items) { if ("yyyy" == item) { result.Append(datetime.Year.ToString("D4")); } else if ("yy" == item) { result.Append((datetime.Year % 100).ToString("D2")); } else if ("mm" == item) { result.Append(datetime.Month.ToString("D2")); } else if ("dd" == item) { result.Append(datetime.Day.ToString("D2")); } else if ("hh24" == item) { result.Append(datetime.Hour.ToString("D2")); } else if ("hh" == item) { result.Append((datetime.Hour).ToString("D2")); } else if ("mi" == item) { result.Append(datetime.Minute.ToString("D2")); } else if ("ss" == item) { result.Append(datetime.Second.ToString("D2")); } else if ("ms" == item) { result.Append(datetime.Millisecond.ToString("D3")); } else { result.Append(item); } } return(result.ToString()); }
public string GetInfo() { FString info = new FString(); info.Append(_name); info.Append(" = "); if (_value != null) { info.Append(_value.ToString()); } else { info.Append("@null"); } return(info.ToString()); }
//============================================================ // <T>追加类的转储信息。</T> // // @param dump 转储信息 // @param level 转储级别 // @param refer 引用对象 //============================================================ public static void AppendClass(FString dump, EDumpLevel level, object refer) { if (level >= EDumpLevel.Normal) { //RClass.Dump(dump, refer); dump.Append(' '); } }
//============================================================ // <T>格式化字节数组为字符串。</T> // // @param bytes 字节数组 // @param offset 开始长度 // @param length 长度 // @return 字符串 //============================================================ public static string Format(byte[] memory, int offset, int length, char spliter = ' ') { FString result = new FString(); for (int n = 0; n < length; n++) { if (n > 0) { if (0 != spliter) { result.Append(spliter); } } result.Append(memory[offset + n].ToString("X2")); } return(result.ToString()); }
//============================================================ // <T>重复字符串生成字符串。</T> // // @param value 字符串 // @param count 总数 // @return 字符串 //============================================================ public static string Repeat(string value, int count) { FString result = new FString(); for (int n = 0; n < count; n++) { result.Append(value); } return(result.ToString()); }
//============================================================ // <T>重复字符生成字符串。</T> // // @param ch 字符 // @param count 总数 // @return 字符串 //============================================================ public static string Repeat(char ch, int count) { FString result = new FString(); for (int n = 0; n < count; n++) { result.Append(ch); } return(result.ToString()); }
//============================================================ // <T>使用分隔符链接所有字符串。</T> // // @param split 分隔符 // @param values 字符串列表 // @return 字符串 //============================================================ public static string Join(string split, params object[] values) { if (null == values) { return(null); } // 链接字符串 FString result = new FString(); int length = values.Length; for (int n = 0; n < length; n++) { if (n > 0) { result.Append(split); } result.Append(values[n]); } return(result.ToString()); }
//============================================================ // <T>获得枚举字符串行集合。</T> // // @param type 枚举对象 // @return 名称 //============================================================ public static string ToStringLine(Type type) { string[] names = SysEnum.GetNames(type); FString result = new FString(); int count = names.Length; for (int n = 0; n < count; n++) { if (n > 0) { result.AppendLine(); } result.Append(names[n]); } return(result.ToString()); }
//============================================================ // <T>删除字符串数组两侧的空字符串。</T> // // @param value 字符串 // @param flag 开头字符 // @return 字符串 //============================================================ public static string TrimLines(string value, char flag) { if (null != value) { return(value); } FString result = new FString(); string[] lines = value.Trim().Split('\n'); for (int n = 0; n < lines.Length; n++) { if (n > 0) { result.AppendLine(); } string line = lines[n].Trim(); if (0 == line.IndexOf(flag)) { line = line.Substring(1); } result.Append(line); } return(result.ToString()); }
//============================================================ // <T>分割格式字符串。</T> // // @param value 格式字符串 // @return 字符串数组 //============================================================ protected static String[] Split(String format) { FStrings items = new FStrings(); FString buffer = new FString(); char[] chars = format.ToLower().ToCharArray(); int length = chars.Length; for (int n = 0; n < length; n++) { String sub = null; if (n <= (length - 4)) { if (('y' == chars[n]) && ('y' == chars[n + 1]) && ('y' == chars[n + 2]) && ('y' == chars[n + 3])) { sub = "yyyy"; } else if (('h' == chars[n]) && ('h' == chars[n + 1]) && ('2' == chars[n + 2]) && ('4' == chars[n + 3])) { sub = "hh24"; } } if (sub == null && n <= (length - 2)) { if (('y' == chars[n]) && ('y' == chars[n + 1])) { sub = "yy"; } else if (('m' == chars[n]) && ('m' == chars[n + 1])) { sub = "mm"; } else if (('d' == chars[n]) && ('d' == chars[n + 1])) { sub = "dd"; } else if (('m' == chars[n]) && ('i' == chars[n + 1])) { sub = "mi"; } else if (('s' == chars[n]) && ('s' == chars[n + 1])) { sub = "ss"; } } if (sub != null) { if (!buffer.IsEmpty) { items.Push(buffer.Flush()); } items.Push(sub); n += sub.Length - 1; } else { buffer.Append(format[n]); } } if (!buffer.IsEmpty) { items.Push(buffer.Flush()); } return(items.ToArray()); }