using System;
namespace iWareCommon.Utils
{
public class StringHelper
{
private static string charStr = "0123456789";
///
/// 换行字符串
///
///
///
public static string GetNewLine()
{
return "\r\n";
}
///
/// 获取日志
///
///
///
public static string GetLog(string log)
{
return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " ----- " + log + GetNewLine();
}
///
/// 格式化字符串,将物料中的单引号格式化为两个单引号
///
///
///
public static string RelpaceQuot(string str)
{
return string.IsNullOrEmpty(str) ? "" : str.Replace("'", "''");
}
///
/// 将型如yyyyMMdd的日期类型转为yyyy-MM-dd的日期类型
///
///
///
public static string ConvertDateTimeStr(string str)
{
if (string.IsNullOrEmpty(str) || str.Length != 8)
{
return str;
}
return str.Substring(0, 4) + "-" + str.Substring(4, 2) + "-" + str.Substring(6, 2);
}
///
/// 获取下一个字符串
///
///
///
public static string NextStr(string str)
{
var charArray = charStr.ToCharArray();
var len = str.Length;
if (str == "".PadLeft(len, charArray[charArray.Length - 1])) { return "".PadLeft(len + 1, charArray[0]); }
var strArray = str.ToCharArray();
for (var i = 0; i < strArray.Length; i++)
{
var pos = charStr.IndexOf(strArray[i]);
if (pos < charArray.Length - 1)
{
strArray[i] = charArray[pos + 1];
break;
}
strArray[i] = charArray[0];
}
return new string(strArray);
}
///
/// 获取第一个字符串
///
///
public static string GetFirstStr()
{
var charArray = charStr.ToCharArray();
return "".PadLeft(6, charArray[0]);
}
///
/// 压缩字符串的算法
///
///
///
public static string Compress(string str)
{
var res = "";
var lastChar = "\0";
var frequency = 0;
var currentChar = string.Empty;
for (int i = 0; i < str.Length; i++)
{
if (str[i].ToString() != lastChar)
{
if (!string.IsNullOrEmpty(currentChar)) { res += (frequency - 1 > 0 ? (frequency - 1).ToString() : string.Empty) + currentChar; }
currentChar = str[i].ToString();
lastChar = currentChar;
frequency = 1;
}
else { frequency += 1; }
}
if (!string.IsNullOrEmpty(currentChar)) { res += (frequency - 1 > 0 ? (frequency - 1).ToString() : string.Empty) + currentChar; }
return res;
}
///
/// 解压字符串的算法
///
///
///
public static string DeCompress(string str)
{
var nChars = "0123456789";
var res = "";
var nbStr = "0";
for (int i = 0; i < str.Length; i++)
{
if (nChars.IndexOf(str[i]) > -1) { nbStr += str[i]; }
else
{
var nb = Convert.ToInt32(nbStr) + 1;
res += "".PadLeft(nb, str[i]);
nbStr = "0";
}
}
return res;
}
///
/// 获取str字符串中key的值
///
///
///
public static string GetValue(string syntax, string key)
{
var str = string.Format("\"{0}\":", key);
var index = syntax.IndexOf(str);
if (index < 0)
{
return "";
}
var beginIndex = syntax.IndexOf("\"", index + str.Length);
var endIndex = syntax.IndexOf("\"", beginIndex + 1);
return syntax.Substring(beginIndex + 1, endIndex - beginIndex - 1);
}
}
}