字符串帮助类
- 格式:docx
- 大小:17.36 KB
- 文档页数:5
C++中的标准库字符串提供了丰富的功能和操作,其中通配符规则是一项非常重要的功能之一。
了解和掌握C++标准库字符串的通配符规则对于编写高效、简洁的代码至关重要。
本文将对C++标准库字符串的通配符规则进行详细介绍,帮助读者深入理解并掌握这一重要的知识点。
一、C++标准库字符串的基本概念1. C++标准库字符串的定义在C++中,标准库字符串通常是使用std::string类来表示的。
这个类提供了一系列成员函数和操作符来对字符串进行各种操作,包括拼接、截取、查找、替换等。
2. C++标准库字符串的特点C++标准库字符串具有以下特点:(1)动态长度:字符串的长度可以动态变化,不需要在定义时指定固定长度。
(2)空终止符:每个字符串都以空终止符('\0')结尾,使用这个特殊的字符来标识字符串的结束。
(3)支持通配符:C++标准库字符串支持常见的通配符规则,可以方便地进行模式匹配和搜索。
二、通配符规则的介绍1. 通配符的作用通配符是一种可以代表任意字符或字符序列的特殊符号,用于模式匹配和搜索。
在C++标准库字符串中,通配符能够帮助我们以一种简洁的方式来描述和匹配特定的字符串模式。
2. 常见的通配符C++标准库字符串中常见的通配符包括:(1)'*':匹配任意长度的任意字符序列。
(2)'?':匹配单个字符。
(3)'[]':匹配指定范围内的字符。
(4)'{}':匹配指定集合内的字符。
三、通配符规则的使用1. 通配符的简单示例我们来看一个简单的示例,假设我们要从一个字符串列表中找出以"abc"开头并且以"def"结尾的字符串。
我们可以使用通配符'*'来表示任意长度的字符序列,代码如下:```std::vector<std::string> strList = {"abc123def", "xyzabc456def", "abcdef123", "abcdef"};for (const auto str : strList) {if (str.find("abc*def") != std::string::npos) {std::cout << str << std::endl;}```在这个示例中,我们使用'abc*def'来表示以"abc"开头并以"def"结尾的字符串,"*"可以匹配任意长度的字符序列。
stringutils format 变量【实用版】目录1.介绍 StringUtils 的使用2.解释 format() 方法的作用3.变量的使用和类型4.使用示例正文StringUtils 是一个在 Java 编程中常用的工具类,它可以帮助开发者处理字符串相关的操作。
其中,format() 方法是一个非常实用的方法,它可以将格式化字符串的值替换到指定的位置,使得字符串的输出更加简洁和易于理解。
在使用 format() 方法之前,我们需要引入 Apache Commons Lang 库。
这个库包含了 StringUtils 类以及其他实用的工具类。
在项目中导入这个库后,我们就可以开始使用 StringUtils 的 format() 方法了。
format() 方法接收两个参数,第一个参数是格式化字符串,第二个参数是要替换的值。
在格式化字符串中,我们可以使用占位符来表示要替换的值。
占位符的格式为“{}”,可以在字符串中多次出现,以便替换多个值。
在使用 format() 方法时,我们需要注意变量的类型。
如果变量的类型是基本数据类型,那么可以直接将其传递给 format() 方法。
但如果变量的类型是复杂的对象类型,我们需要将其转换为基本数据类型后才能使用。
例如,如果我们有一个 String 类型的变量,我们需要先将其转换为StringBuilder 类型,然后再将其传递给 format() 方法。
下面是一个使用 StringUtils.format() 方法的示例:```javapublic class Main {public static void main(String[] args) {String name = "张三";int age = 25;String result = StringUtils.format("我的名字是{},我{}岁了。
", name, age);System.out.println(result);}}```运行上述代码,输出结果为:```我的名字是张三,我 25 岁了。
string包含的函数一、引言在程序设计中,字符串是一种常见的数据类型,用于存储和处理文本信息。
字符串相关的函数可以帮助我们对字符串进行各种操作,如查找、替换、拼接等。
本文将介绍一些常用的字符串函数,并给出使用示例,以帮助读者更好地理解和运用这些函数。
二、长度函数字符串的长度是指字符串中字符的个数。
我们可以使用length函数来获取一个字符串的长度。
例如,对于字符串"Hello World",其长度为11。
下面是一个示例代码:```string str = "Hello World";int len = str.length();```在上面的代码中,str.length()函数返回字符串str的长度,并将其赋值给变量len。
三、查找函数在处理字符串时,我们经常需要查找某个子串在字符串中的位置。
C++中的string类提供了find函数来实现这个功能。
该函数接受一个参数,即需要查找的子串,返回子串第一次出现的位置。
如果子串不存在,则返回一个特殊值string::npos。
下面是一个示例代码:string str = "Hello World";int pos = str.find("o");```在上面的代码中,str.find("o")函数返回字符'o'在字符串str中的位置,并将其赋值给变量pos。
四、替换函数有时候,我们需要将字符串中的某个子串替换为另一个子串。
C++中的string类提供了replace函数来实现这个功能。
该函数接受三个参数,分别是需要替换的子串、替换的起始位置和替换的长度。
下面是一个示例代码:```string str = "Hello World";str.replace(6, 5, "C++");```在上面的代码中,str.replace(6, 5, "C++")函数将字符串str中从位置6开始的5个字符替换为"C++"。
sqlserver字符串的类型
字符串分为不同的类型,下⾯就将为您介绍⼏个sql server字符串的常见类型,希望对您学习sql server字符串能有所帮助。
nchar
此数据类型可存储1~4000个定长Unicode字符串,字符串长度在创建时指定;如未指定,默认为nchar(1)。
每个字符占⽤2bytes存储空间。
varchar
此数据类型可存储最⼤值为8000个字符的可变长字符串。
可变长字符串的最⼤长度在创建时指定,如varchar(50),每个字符占⽤1byte存储空间。
nvarchar
此数据类型可存储最⼤值为4000个字符可变长Unicode字符串。
可变长Unicode字符串的最⼤长度在创建时指定,如nvarchar(50),每个字符占⽤2bytes存储空间。
text
此数据类型可存储最⼤值为2147483647个字符的变长⽂本,并且⽆需指定其初始值,每个字符占⽤1byte存储空间,⼀般⽤来存储⼤段的⽂章。
text数据类型实际上是⼀个Large Object数据类型,默认情况下,此类型的数据不是存储在数据⾏内,⽽是存储于独⽴的Large Object数据页上。
另外,text数据类型不能做为函数、存储过程或触发器中的参数来⽤。
oracle的字符串类型Oracle的字符串类型有VARCHAR2、CHAR、CLOB和NCLOB等。
这些字符串类型在Oracle数据库中起着非常重要的作用,可以用于存储和处理各种类型的文本数据。
我们来介绍一下VARCHAR2类型。
VARCHAR2是一种可变长度的字符串类型,可以存储最多4000个字符。
它适用于存储变长的文本数据,比如用户的姓名、地址、描述等信息。
与之相对的是CHAR类型,它是一种定长的字符串类型,需要指定字符串的长度。
CHAR类型适用于存储长度固定的文本数据,比如国家代码、邮政编码等。
接下来,我们来介绍一下CLOB类型。
CLOB是一种用于存储大量文本数据的字符串类型,可以存储最多4GB的数据。
CLOB适用于存储较长的文本数据,比如文章内容、日志记录等。
与之类似的是NCLOB类型,它是用于存储Unicode字符集的大文本数据。
在Oracle中,我们可以使用字符串函数来处理字符串类型的数据。
比如,我们可以使用LENGTH函数来获取字符串的长度,使用SUBSTR函数来截取字符串的一部分,使用CONCAT函数来拼接多个字符串等。
这些字符串函数可以帮助我们对字符串数据进行各种操作和处理。
除了基本的字符串操作,Oracle还提供了一些高级的字符串处理功能。
比如,我们可以使用REGEXP_REPLACE函数来进行正则表达式替换,使用REGEXP_SUBSTR函数来进行正则表达式匹配等。
这些高级的字符串处理功能可以帮助我们更加灵活地处理字符串数据。
在实际应用中,我们经常需要对字符串进行排序和比较。
在Oracle 中,字符串的排序和比较是按照字符的ASCII码进行的。
如果我们需要按照特定的排序规则进行排序,可以使用NLS_SORT参数来指定排序规则。
另外,我们还可以使用NLS_COMP参数来指定字符串的比较规则,比如是否区分大小写、是否区分重音符号等。
除了基本的字符串操作和函数,Oracle还提供了一些用于处理字符串数据的内置包和类型。
java string... 的用法在Java编程语言中,String类是一个非常重要的类,用于处理字符串数据。
String类提供了许多方法和功能,可以帮助开发人员更方便地操作和处理字符串数据。
本篇文章将介绍String类的一些常用方法和用法。
一、字符串连接String类提供了多种方法来连接字符串,其中最常见的方法是+运算符和StringBuilder或StringBuffer类的append()方法。
使用+运算符连接字符串非常简单,但是需要注意的是,如果需要连接的字符串数量较多,性能会受到影响,因为每次使用+运算符都会创建一个新的字符串对象。
可以使用StringBuilder或StringBuffer 类的append()方法来连接字符串,性能更高。
二、字符串比较String类提供了equals()和equalsIgnoreCase()方法来比较两个字符串是否相等。
equals()方法比较的是字符串的内容,而equalsIgnoreCase()方法比较的是字符串的内容和大小写。
除此之外,String类还提供了compareTo()和compareToIgnoreCase()方法,可以按照字典顺序比较两个字符串。
三、字符串查找String类提供了indexOf()和lastIndexOf()方法,可以查找一个字符串中某个子字符串第一次出现的位置。
indexOf()方法返回的是子字符串第一次出现的位置,而lastIndexOf()方法返回的是最后一个出现的位置。
除此之外,String类还提供了contains()方法,可以判断一个字符串是否包含另一个字符串。
四、字符串替换String类提供了replace()和replaceFirst()方法,可以用来替换字符串中的某个子字符串。
replace()方法可以替换所有出现的子字符串,而replaceFirst()方法只替换第一个出现的子字符串。
除此之外,String类还提供了substring()方法,可以用来截取字符串的一部分。
【C#公共帮助类】Utils10年代码,最全的系统帮助类为⼤家分享⼀下个⼈的⼀个Utils系统帮助类,可能有些现在有新的技术替代,⾃⾏修改哈~这个帮助类主要包含:对象转换处理、分割字符串、截取字符串、删除最后结尾的⼀个逗号、删除最后结尾的指定字符后的字符、⽣成指定长度的字符串、⽣成⽇期随机码、⽣成随机字母或数、字截取字符长度、对象<-->JSON 4.0使⽤、对象<-->JSON 2.0使⽤litjson插件、 DataTable<-->JSON、List<--->DataTable、清除HTML标记、清除HTML标记且返回相应的长度、 TXT代码转换成HTML格式、 HTML代码转换成TXT格式、检测是否有Sql 危险字符、过滤特殊字符、检查是否为IP地址、获得配置⽂件节点XML⽂件的绝对路径、获得当前绝对路径、⽂件操作、读取或写⼊cookie 替换指定的字符串、 URL处理、 MD5加密⽅法、获得当前页⾯客户端的IP、数据导出为EXCEL、列的命名、构造URL POST请求、构造URL GET请求、POST请求、访问提交创建⽂件(供⽣成静态页⾯使⽤,⽆需模板)、汉字转拼⾳、获取⽹页的HTML内容废话不多说,上代码:对象转换处理1#region对象转换处理2///<summary>3///判断对象是否为Int32类型的数字4///</summary>5///<param name="Expression"></param>6///<returns></returns>7public static bool IsNumeric(object expression)8 {9if (expression != null)10return IsNumeric(expression.ToString());1112return false;1314 }1516///<summary>17///判断对象是否为Int32类型的数字18///</summary>19///<param name="Expression"></param>20///<returns></returns>21public static bool IsNumeric(string expression)22 {23if (expression != null)24 {25string str = expression;26if (str.Length > 0 && str.Length <= 11 && Regex.IsMatch(str, @"^[-]?[0-9]*[.]?[0-9]*$"))27 {28if ((str.Length < 10) || (str.Length == 10 && str[0] == '1') || (str.Length == 11 && str[0] == '-' && str[1] == '1'))29return true;30 }31 }32return false;33 }3435///<summary>36///是否为Double类型37///</summary>38///<param name="expression"></param>39///<returns></returns>40public static bool IsDouble(object expression)41 {42if (expression != null)43return Regex.IsMatch(expression.ToString(), @"^([0-9])[0-9]*(\.\w*)?$");4445return false;46 }4748///<summary>49///将字符串转换为数组50///</summary>51///<param name="str">字符串</param>52///<returns>字符串数组</returns>53public static string[] GetStrArray(string str)54 {55return str.Split(new char[',']);56 }5758///<summary>59///将数组转换为字符串60///</summary>61///<param name="list">List</param>62///<param name="speater">分隔符</param>63///<returns>String</returns>64public static string GetArrayStr(List<string> list, string speater)65 {66 StringBuilder sb = new StringBuilder();67for (int i = 0; i < list.Count; i++)68 {69if (i == list.Count - 1)70 {71 sb.Append(list[i]);72 }73else74 {75 sb.Append(list[i]);76 sb.Append(speater);77 }78 }79return sb.ToString();80 }8182///<summary>83/// object型转换为bool型84///</summary>85///<param name="strValue">要转换的字符串</param>86///<param name="defValue">缺省值</param>87///<returns>转换后的bool类型结果</returns>88public static bool StrToBool(object expression, bool defValue) 89 {90if (expression != null)91return StrToBool(expression, defValue);9293return defValue;94 }9596///<summary>97/// string型转换为bool型98///</summary>99///<param name="strValue">要转换的字符串</param>100///<param name="defValue">缺省值</param>101///<returns>转换后的bool类型结果</returns>102public static bool StrToBool(string expression, bool defValue) 103 {104if (expression != null)105 {106if (pare(expression, "true", true) == 0)107return true;108else if (pare(expression, "false", true) == 0) 109return false;110 }111return defValue;112 }113114///<summary>115///将对象转换为Int32类型116///</summary>117///<param name="expression">要转换的字符串</param>118///<param name="defValue">缺省值</param>119///<returns>转换后的int类型结果</returns>120public static int ObjToInt(object expression, int defValue)121 {122if (expression != null)123return StrToInt(expression.ToString(), defValue);124125return defValue;126 }127128///<summary>129///将字符串转换为Int32类型130///</summary>131///<param name="expression">要转换的字符串</param>132///<param name="defValue">缺省值</param>133///<returns>转换后的int类型结果</returns>134public static int StrToInt(string expression, int defValue)135 {136if (string.IsNullOrEmpty(expression) || expression.Trim().Length >= 11 || !Regex.IsMatch(expression.Trim(), @"^([-]|[0-9])[0-9]*(\.\w*)?$")) 137return defValue;138139int rv;140if (Int32.TryParse(expression, out rv))141return rv;142143return Convert.ToInt32(StrToFloat(expression, defValue));144 }145146///<summary>147/// Object型转换为decimal型148///</summary>149///<param name="strValue">要转换的字符串</param>150///<param name="defValue">缺省值</param>151///<returns>转换后的decimal类型结果</returns>152public static decimal ObjToDecimal(object expression, decimal defValue)153 {154if (expression != null)155return StrToDecimal(expression.ToString(), defValue);156157return defValue;158 }159160///<summary>161/// string型转换为decimal型162///</summary>163///<param name="strValue">要转换的字符串</param>164///<param name="defValue">缺省值</param>165///<returns>转换后的decimal类型结果</returns>166public static decimal StrToDecimal(string expression, decimal defValue)167 {168if ((expression == null) || (expression.Length > 10))169return defValue;170171decimal intValue = defValue;172if (expression != null)173 {174bool IsDecimal = Regex.IsMatch(expression, @"^([-]|[0-9])[0-9]*(\.\w*)?$");175if (IsDecimal)176decimal.TryParse(expression, out intValue);177 }178return intValue;179 }180181///<summary>182/// Object型转换为float型183///</summary>184///<param name="strValue">要转换的字符串</param>185///<param name="defValue">缺省值</param>186///<returns>转换后的int类型结果</returns>187public static float ObjToFloat(object expression, float defValue)188 {189if (expression != null)190return StrToFloat(expression.ToString(), defValue);191192return defValue;193 }194195///<summary>196/// string型转换为float型197///</summary>198///<param name="strValue">要转换的字符串</param>199///<param name="defValue">缺省值</param>200///<returns>转换后的int类型结果</returns>201public static float StrToFloat(string expression, float defValue)202 {203if ((expression == null) || (expression.Length > 10))204return defValue;205206float intValue = defValue;207if (expression != null)208 {209bool IsFloat = Regex.IsMatch(expression, @"^([-]|[0-9])[0-9]*(\.\w*)?$"); 210if (IsFloat)211float.TryParse(expression, out intValue);212 }213return intValue;214 }215216///<summary>217///将对象转换为⽇期时间类型218///</summary>219///<param name="str">要转换的字符串</param>220///<param name="defValue">缺省值</param>221///<returns>转换后的int类型结果</returns>222public static DateTime StrToDateTime(string str, DateTime defValue)223 {224if (!string.IsNullOrEmpty(str))225 {226 DateTime dateTime;227if (DateTime.TryParse(str, out dateTime))228return dateTime;229 }230return defValue;231 }232233///<summary>234///将对象转换为⽇期时间类型235///</summary>236///<param name="str">要转换的字符串</param>237///<returns>转换后的int类型结果</returns>238public static DateTime StrToDateTime(string str)239 {240return StrToDateTime(str, DateTime.Now);241 }242243///<summary>244///将对象转换为⽇期时间类型245///</summary>246///<param name="obj">要转换的对象</param>247///<returns>转换后的int类型结果</returns>248public static DateTime ObjectToDateTime(object obj)249 {250return StrToDateTime(obj.ToString());251 }252253///<summary>254///将对象转换为⽇期时间类型255///</summary>256///<param name="obj">要转换的对象</param>257///<param name="defValue">缺省值</param>258///<returns>转换后的int类型结果</returns>259public static DateTime ObjectToDateTime(object obj, DateTime defValue)260 {261return StrToDateTime(obj.ToString(), defValue);262 }263264///<summary>265///将对象转换为字符串266///</summary>267///<param name="obj">要转换的对象</param>268///<returns>转换后的string类型结果</returns>269public static string ObjectToStr(object obj)270 {271if (obj == null)272return"";273return obj.ToString().Trim();274 }275#endregionView Code分割字符串1#region分割字符串2///<summary>3///分割字符串4///</summary>5public static string[] SplitString(string strContent, string strSplit)6 {7if (!string.IsNullOrEmpty(strContent))8 {9if (strContent.IndexOf(strSplit) < 0)10return new string[] { strContent };1112return Regex.Split(strContent, Regex.Escape(strSplit), RegexOptions.IgnoreCase);13 }14else15return new string[0] { };16 }1718///<summary>19///分割字符串20///</summary>21///<returns></returns>22public static string[] SplitString(string strContent, string strSplit, int count)23 {24string[] result = new string[count];25string[] splited = SplitString(strContent, strSplit);2627for (int i = 0; i < count; i++)28 {29if (i < splited.Length)30 result[i] = splited[i];31else32 result[i] = string.Empty;33 }3435return result;36 }37#endregionView Code截取字符串1#region截取字符串2public static string GetSubString(string p_SrcString, int p_Length, string p_TailString)3 {4return GetSubString(p_SrcString, 0, p_Length, p_TailString);5 }6public static string GetSubString(string p_SrcString, int p_StartIndex, int p_Length, string p_TailString)7 {8string str = p_SrcString;9byte[] bytes = Encoding.UTF8.GetBytes(p_SrcString);10foreach (char ch in Encoding.UTF8.GetChars(bytes))11 {12if (((ch > ' ') && (ch < '⼀')) || ((ch > 0xac00) && (ch < 0xd7a3)))13 {14if (p_StartIndex >= p_SrcString.Length)15 {16return"";17 }18return p_SrcString.Substring(p_StartIndex, ((p_Length + p_StartIndex) > p_SrcString.Length) ? (p_SrcString.Length - p_StartIndex) : p_Length);19 }20 }21if (p_Length < 0)22 {23return str;24 }25byte[] sourceArray = Encoding.Default.GetBytes(p_SrcString);26if (sourceArray.Length <= p_StartIndex)27 {28return str;29 }30int length = sourceArray.Length;31if (sourceArray.Length > (p_StartIndex + p_Length))32 {33 length = p_Length + p_StartIndex;34 }35else36 {37 p_Length = sourceArray.Length - p_StartIndex;38 p_TailString = "";39 }40int num2 = p_Length;41int[] numArray = new int[p_Length];42byte[] destinationArray = null;43int num3 = 0;44for (int i = p_StartIndex; i < length; i++)45 {46if (sourceArray[i] > 0x7f)47 {48 num3++;49if (num3 == 3)50 {51 num3 = 1;52 }53 }54else55 {56 num3 = 0;57 }58 numArray[i] = num3;59 }60if ((sourceArray[length - 1] > 0x7f) && (numArray[p_Length - 1] == 1))61 {62 num2 = p_Length + 1;63 }64 destinationArray = new byte[num2];65 Array.Copy(sourceArray, p_StartIndex, destinationArray, 0, num2); 66return (Encoding.Default.GetString(destinationArray) + p_TailString);67 }68#endregionView Code删除最后结尾的⼀个逗号1#region删除最后结尾的⼀个逗号2///<summary>3///删除最后结尾的⼀个逗号4///</summary>5public static string DelLastComma(string str)6 {7return str.Substring(0, stIndexOf(","));8 }9#endregionView Code删除最后结尾的指定字符后的字符1#region删除最后结尾的指定字符后的字符2///<summary>3///删除最后结尾的指定字符后的字符4///</summary>5public static string DelLastChar(string str, string strchar)6 {7if (string.IsNullOrEmpty(str))8return"";9if (stIndexOf(strchar) >= 0 && stIndexOf(strchar) == str.Length - 1) 10 {11return str.Substring(0, stIndexOf(strchar));12 }13return str;14 }15#endregionView Code⽣成指定长度的字符串1#region⽣成指定长度的字符串2///<summary>3///⽣成指定长度的字符串,即⽣成strLong个str字符串4///</summary>5///<param name="strLong">⽣成的长度</param>6///<param name="str">以str⽣成字符串</param>7///<returns></returns>8public static string StringOfChar(int strLong, string str)9 {10string ReturnStr = "";11for (int i = 0; i < strLong; i++)12 {13 ReturnStr += str;14 }1516return ReturnStr;17 }18#endregionView Code⽣成⽇期随机码1#region⽣成⽇期随机码2///<summary>3///⽣成⽇期随机码4///</summary>5///<returns></returns>6public static string GetRamCode()7 {8#region9return DateTime.Now.ToString("yyyyMMddHHmmssffff");10#endregion11 }12#endregionView Code⽣成随机字母或数字1#region⽣成随机字母或数字2///<summary>3///⽣成随机数字4///</summary>5///<param name="length">⽣成长度</param>6///<returns></returns>7public static string Number(int Length)8 {9return Number(Length, false);10 }1112///<summary>13///⽣成随机数字14///</summary>15///<param name="Length">⽣成长度</param>16///<param name="Sleep">是否要在⽣成前将当前线程阻⽌以避免重复</param>17///<returns></returns>18public static string Number(int Length, bool Sleep)19 {20if (Sleep)21 System.Threading.Thread.Sleep(3);22string result = "";23 System.Random random = new Random();24for (int i = 0; i < Length; i++)25 {26 result += random.Next(10).ToString();27 }28return result;29 }30///<summary>31///⽣成随机字母字符串(数字字母混和)32///</summary>33///<param name="codeCount">待⽣成的位数</param>34public static string GetCheckCode(int codeCount)35 {36string str = string.Empty;37int rep = 0;38long num2 = DateTime.Now.Ticks + rep;39 rep++;40 Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> rep))); 41for (int i = 0; i < codeCount; i++)42 {43char ch;44int num = random.Next();45if ((num % 2) == 0)46 {47 ch = (char)(0x30 + ((ushort)(num % 10)));48 }49else50 {51 ch = (char)(0x41 + ((ushort)(num % 0x1a)));52 }53 str = str + ch.ToString();54 }55return str;56 }57///<summary>58///根据⽇期和随机码⽣成订单号59///</summary>60///<returns></returns>61public static string GetOrderNumber()62 {63string num = DateTime.Now.ToString("yyMMddHHmmss");//yyyyMMddHHmmssms64return num + Number(2).ToString();65 }66private static int Next(int numSeeds, int length)67 {68byte[] buffer = new byte[length];69 System.Security.Cryptography.RNGCryptoServiceProvider Gen = new System.Security.Cryptography.RNGCryptoServiceProvider();70 Gen.GetBytes(buffer);71uint randomResult = 0x0;//这⾥⽤uint作为⽣成的随机数72for (int i = 0; i < length; i++)73 {74 randomResult |= ((uint)buffer[i] << ((length - 1 - i) * 8));75 }76return (int)(randomResult % numSeeds);77 }78#endregionView Code截取字符长度1#region截取字符长度2///<summary>3///截取字符长度4///</summary>5///<param name="inputString">字符</param>6///<param name="len">长度</param>7///<returns></returns>8public static string CutString(string inputString, int len)9 {10if (string.IsNullOrEmpty(inputString))11return"";12 inputString = DropHTML(inputString);13 ASCIIEncoding ascii = new ASCIIEncoding();14int tempLen = 0;15string tempString = "";16byte[] s = ascii.GetBytes(inputString);17for (int i = 0; i < s.Length; i++)18 {19if ((int)s[i] == 63)20 {21 tempLen += 2;22 }23else24 {25 tempLen += 1;26 }2728try29 {30 tempString += inputString.Substring(i, 1);31 }32catch33 {34break;35 }3637if (tempLen > len)38break;39 }40//如果截过则加上半个省略号41byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);42if (mybyte.Length > len)43 tempString += "…";44return tempString;45 }46#endregionView Code对象<-->JSON 4.0使⽤1#region对象<-->JSON 4.0使⽤2///<summary>3///对象转JSON4///</summary>5///<typeparam name="T">对象实体</typeparam>6///<param name="t">内容</param>7///<returns>json包</returns>8public static string ObjetcToJson<T>(T t)9 {10try11 {12 DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(T));13string szJson = "";14using (MemoryStream stream = new MemoryStream())15 {16 json.WriteObject(stream, t);17 szJson = Encoding.UTF8.GetString(stream.ToArray());18 }19return szJson;20 }21catch { return""; }22 }2324///<summary>25/// Json包转对象26///</summary>27///<typeparam name="T">对象</typeparam>28///<param name="jsonstring">json包</param>29///<returns>异常抛null</returns>30public static object JsonToObject<T>(string jsonstring)31 {32object result = null;33try34 {35 DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(T));36using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonstring)))37 {38 result = json.ReadObject(stream);39 }40return result;44#endregionView Code对象<-->JSON 2.0使⽤litjson插件1#region对象<-->JSON 2.0 使⽤litjson插件2///<summary>3///对象转JSON jsonData4///</summary>5///<typeparam name="T"></typeparam>6///<param name="t"></param>7///<returns></returns>8//public static string ObjetcToJsonData<T>(T t)9//{10// try11// {12// JsonData json = new JsonData(t);13// return json.ToJson();14// }15// catch16// {17// return "";18// }19//}2021///// <summary>22///// 对象转JSON jsonMapper23///// </summary>24///// <typeparam name="T"></typeparam>25///// <param name="t"></param>26///// <returns></returns>27//public static string ObjetcToJsonMapper<T>(T t)28//{29// try30// {31// JsonData json = JsonMapper.ToJson(t);32// return json.ToJson();33// }34// catch35// {36// return "";37// }38//}3940///// <summary>41///// json转对象 jsonMapper42///// </summary>43///// <param name="jsons"></param>44///// <returns></returns>45//public static object JsonToObject(string jsons)46//{47// try48// {49// JsonData jsonObject = JsonMapper.ToObject(jsons); 50// return jsonObject;5455#endregionView CodeDataTable<-->JSON1#region DataTable<-->JSON2///<summary>3/// DataTable转为json4///</summary>5///<param name="dt">DataTable</param>6///<returns>json数据</returns>7public static string DataTableToJson(DataTable dt)8 {9 List<Dictionary<string, object>> list = new List<Dictionary<string, object>>(); 10foreach (DataRow dr in dt.Rows)11 {12 Dictionary<string, object> result = new Dictionary<string, object>();13foreach (DataColumn dc in dt.Columns)14 {15 result.Add(dc.ColumnName, dr[dc]);16 }17 list.Add(result);18 }1920return SerializeToJson(list);21 }22///<summary>23///序列化对象为Json字符串24///</summary>25///<param name="obj">要序列化的对象</param>26///<param name="recursionLimit">序列化对象的深度,默认为100</param>27///<returns>Json字符串</returns>28public static string SerializeToJson(object obj, int recursionLimit = 100)29 {30try31 {32 JavaScriptSerializer serialize = new JavaScriptSerializer();33 serialize.RecursionLimit = recursionLimit;34return serialize.Serialize(obj);35 }36catch { return""; }37 }38///<summary>39/// json包转DataTable40///</summary>41///<param name="jsons"></param>42///<returns></returns>43public static DataTable JsonToDataTable(string jsons)44 {45 DataTable dt = new DataTable();46try47 {48 JavaScriptSerializer serialize = new JavaScriptSerializer();49 serialize.MaxJsonLength = Int32.MaxValue;53foreach (Dictionary<string, object> item in list)54 {55if (item.Keys.Count == 0)//⽆值返回空56 {57return dt;58 }59if (dt.Columns.Count == 0)//初始Columns60 {61foreach (string current in item.Keys)62 {63 dt.Columns.Add(current, item[current].GetType());64 }65 }66 DataRow dr = dt.NewRow();67foreach (string current in item.Keys)68 {69 dr[current] = item[current];70 }71 dt.Rows.Add(dr);72 }73 }74 }75catch76 {77return dt;78 }79return dt;80 }81#endregionView CodeList<--->DataTable1#region List<--->DataTable2///<summary>3/// DataTable转换泛型集合4///</summary>5///<typeparam name="T"></typeparam>6///<param name="table"></param>7///<returns></returns>8public static List<T> DataTableToList<T>(DataTable table)9 {10 List<T> list = new List<T>();11 T t = default(T);12 PropertyInfo[] propertypes = null;13string tempName = string.Empty;14foreach (DataRow row in table.Rows)15 {16 t = Activator.CreateInstance<T>();17 propertypes = t.GetType().GetProperties();18foreach (PropertyInfo pro in propertypes)19 {20 tempName = ;21if (table.Columns.Contains(tempName))22 {26 pro.SetValue(t, value, null);27 }28 }29 }30 list.Add(t);31 }32return list.Count == 0 ? null : list;33 }3435///<summary>36///将集合类转换成DataTable37///</summary>38///<param name="list">集合</param>39///<returns>DataTable</returns>40public static DataTable ListToDataTable(IList list)41 {42 DataTable result = new DataTable();43if (list != null && list.Count > 0)44 {45 PropertyInfo[] propertys = list[0].GetType().GetProperties();46foreach (PropertyInfo pi in propertys)47 {48 result.Columns.Add(, pi.PropertyType);49 }50for (int i = 0; i < list.Count; i++)51 {52 ArrayList tempList = new ArrayList();53foreach (PropertyInfo pi in propertys)54 {55object obj = pi.GetValue(list[i], null);56 tempList.Add(obj);57 }58object[] array = tempList.ToArray();59 result.LoadDataRow(array, true);60 }61 }62return result;63 }64public static List<T> ConvertTo<T>(DataTable dt) where T : new()65 {66if (dt == null) return null;67if (dt.Rows.Count <= 0) return null;6869 List<T> list = new List<T>();70try71 {72 List<string> columnsName = new List<string>();73foreach (DataColumn dataColumn in dt.Columns)74 {75 columnsName.Add(dataColumn.ColumnName);//得到所有的表头76 }77 list = dt.AsEnumerable().ToList().ConvertAll<T>(row => GetObject<T>(row, columnsName)); //转换 78return list;79 }80catch81 {82return null;83 }84 }8586public static T GetObject<T>(DataRow row, List<string> columnsName) where T : new()91string columnname = "";92string value = "";93 PropertyInfo[] Properties = typeof(T).GetProperties();94foreach (PropertyInfo objProperty in Properties) //遍历T的属性95 {96 columnname = columnsName.Find(name => name.ToLower() == .ToLower()); //寻找可以匹配的表头名称97if (!string.IsNullOrEmpty(columnname))98 {99 value = row[columnname].ToString();100if (!string.IsNullOrEmpty(value))101 {102if (Nullable.GetUnderlyingType(objProperty.PropertyType) != null) //存在匹配的表头103 {104 value = row[columnname].ToString().Replace("$", "").Replace(",", ""); //从dataRow中提取数据105 objProperty.SetValue(obj, Convert.ChangeType(value, Type.GetType(Nullable.GetUnderlyingType(objProperty.PropertyType).ToString())), null); //赋值操作106 }107else108 {109 value = row[columnname].ToString().Replace("%", ""); //存在匹配的表头110 objProperty.SetValue(obj, Convert.ChangeType(value, Type.GetType(objProperty.PropertyType.ToString())), null);//赋值操作111 }112 }113 }114 }115return obj;116 }117catch118 {119return obj;120 }121 }122///<summary>123///将泛型集合类转换成DataTable124///</summary>125///<typeparam name="T">集合项类型</typeparam>126///<param name="list">集合</param>127///<param name="propertyName">需要返回的列的列名</param>128///<returns>数据集(表)</returns>129public static DataTable ListToDataTable<T>(IList<T> list, params string[] propertyName)130 {131 List<string> propertyNameList = new List<string>();132if (propertyName != null)133 propertyNameList.AddRange(propertyName);134 DataTable result = new DataTable();135if (list != null && list.Count > 0)136 {137 PropertyInfo[] propertys = list[0].GetType().GetProperties();138foreach (PropertyInfo pi in propertys)139 {140if (propertyNameList.Count == 0)141 {142 result.Columns.Add(, pi.PropertyType);143 }144else145 {146if (propertyNameList.Contains())147 result.Columns.Add(, pi.PropertyType);148 }149 }150for (int i = 0; i < list.Count; i++)151 {156 {157object obj = pi.GetValue(list[i], null);158 tempList.Add(obj);159 }160else161 {162if (propertyNameList.Contains())163 {164object obj = pi.GetValue(list[i], null);165 tempList.Add(obj);166 }167 }168 }169object[] array = tempList.ToArray();170 result.LoadDataRow(array, true);171 }172 }173return result;174 }175176#endregionView Code清除HTML标记1#region清除HTML标记2public static string DropHTML(string Htmlstring)3 {4if (string.IsNullOrEmpty(Htmlstring)) return"";5//删除脚本6 Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase); 7//删除HTML8 Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);9 Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);10 Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);11 Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);12 Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);13 Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);14 Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);15 Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);16 Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", "", RegexOptions.IgnoreCase);17 Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);18 Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);19 Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);20 Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);2122 Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);23 Htmlstring.Replace("<", "");24 Htmlstring.Replace(">", "");25 Htmlstring.Replace("\r\n", "");26 Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();27return Htmlstring;28 }29#endregion。
一、介绍在Java编程中,经常会遇到需要判断多个字符串是否为空的情况。
在实际开发过程中,如何高效地判断多个字符串不为空是我们需要解决的问题之一。
本文将介绍几种常用的方法来判断多个字符串是否不为空,帮助开发者更好地处理这类情况。
二、使用if语句逐个判断1. 针对几个字符串进行逐个判断,使用if语句来判断每个字符串是否不为空。
2. 代码示例:```if (str1 != null !str1.isEmpty()str2 != null !str2.isEmpty()str3 != null !str3.isEmpty()) {// 执行逻辑}```3. 优点:逻辑清晰,容易理解。
4. 缺点:当字符串数量增多时,代码显得冗长,不够简洁,且容易出现遗漏。
三、使用StringUtils工具类1. Apache Commons Lang是一个开源的Java工具库,其中的StringUtils工具类提供了丰富的字符串操作方法。
2. 使用StringUtils.isNotBlank()方法来判断多个字符串是否不为空。
3. 代码示例:```if (StringUtils.isNotBlank(str1)StringUtils.isNotBlank(str2)StringUtils.isNotBlank(str3)) {// 执行逻辑}```4. 优点:简洁,易读,避免了逐个判断的冗长代码。
5. 缺点:需要引入Apache Commons Lang库,增加了项目的依赖。
四、使用Optional类1. Optional是Java 8中新增的类,用来解决空指针异常问题。
2. 使用Optional.ofNullable()方法来判断多个字符串是否不为空。
3. 代码示例:```if (Optional.ofNullable(str1).isPresent()Optional.ofNullable(str2).isPresent()Optional.ofNullable(str3).isPresent()) {// 执行逻辑}```4. 优点:通过Optional类的方式使代码更加简洁,同时避免了空指针异常。
将Json数据转换为实体类等⽅法的帮助类最新更新,平时使⽤的jsonHelper类,分享给⼤家使⽤。
注:需要引⽤类库。
public class JsonHelper{///<summary>/// string扩展⽅法(忽略⼤⼩写⽐较字符串)///</summary>///<param name="source">源字符串</param>///<param name="value">⽬标字符串</param>///<param name="comparisonType"></param>public static bool Contains(string source, string value, StringComparison comparisonType = StringComparison.OrdinalIgnoreCase){return source.IndexOf(value, comparisonType) >= 0;}///<summary>///对象转JSON///</summary>///<param name="obj">对象</param>///<returns>JSON格式的字符串</returns>public static string ObjectToJson(object obj){try{return Newtonsoft.Json.JsonConvert.SerializeObject(obj);}catch (Exception ex){throw new Exception(string.Format("JSONHelper.ObjectToJSON()异常:{0} 数据:{1} ", ex.Message, obj));}}///<summary>///获取Json格式返回结果///</summary>///<param name="result">操作结果返回类型</param>///<param name="data">返回数据</param>///<param name="msg">结果描述</param>///<returns>Json格式数据,形如{"result":1,"data":0,"msg":""}</returns>public static string GetJsonResult(BackType result, object data, string msg){var dic = new Dictionary<string, object>();dic.Add(JsonItem.Result, result.GetHashCode());dic.Add(JsonItem.Data, data);dic.Add(JsonItem.Msg, msg);return ObjectToJson(dic);}///<summary>///输出成功数据///</summary>///<param name="data">返回数据</param>///<param name="msg">返回信息</param>public static void ResponseOK(System.Web.HttpContext cnt, object data, string msg = "请求成功"){var json = GetJsonResult(BackType.Success, data, msg);cnt.Response.Write(json);}///<summary>///输出失败数据///</summary>///<param name="data">返回数据</param>///<param name="msg">返回信息</param>public static void ResponseFail(System.Web.HttpContext cnt, object data, string msg){var json = GetJsonResult(BackType.Failure, data, msg);cnt.Response.Write(json);}///<summary>///输出验证错误数据///</summary>///<param name="data">返回数据</param>///<param name="msg">返回信息</param>public static void ResponseErr(System.Web.HttpContext cnt, object data, string msg){var json = GetJsonResult(BackType.CheckErr, data, msg);cnt.Response.Write(json);}///<summary>/// DataTable转数组集合(输出字段名全⼩写)///</summary>///<returns>符合Json格式转换数据集</returns>public static Dictionary<string, object> DataTableToDic(DataTable dt){var dic = new Dictionary<string, object>();var list = new List<object>();if (dt != null){var rows = dt.Rows.Count;var cols = dt.Columns.Count;dic.Add(JsonItem.Count, rows);//总记录数for (int i = 0; i < rows; i++){var row = new Dictionary<string, object>();for (int j = 0; j < cols; j++){row.Add(dt.Columns[j].ColumnName.ToLower(), dt.Rows[i][j]);}list.Add(row);}}else{dic.Add(JsonItem.Count, 0);}dic.Add(JsonItem.List, list);//数据列表return dic;}///<summary>/// DataTable转Json格式(输出字段名全⼩写)///</summary>///<param name="dt">数据表</param>///<returns>Json格式数据,形如:{"result":1,"data":{"count":0,"list":[{},{}]},"msg":"成功"}</returns> public static string DataTableToJson(DataTable dt){if (dt == null || dt.Rows.Count < 1){return GetJsonResult(BackType.Failure, "", "数据为空");}return GetJsonResult(BackType.Success, DataTableToDic(dt), "请求成功");}///<summary>/// DataSet转Json格式(输出字段名全⼩写)///</summary>///<param name="ds">数据集</param>///<returns>Json格式数据,形如:{"result":1,"data":[{"count":0,"list":[{},{}]},{}],"msg":""}</returns> public static string DataSetToJson(DataSet ds){if (ds == null || ds.Tables.Count < 1){return GetJsonResult(BackType.Failure, "", "数据为空");}var tbs = new List<object>();for (int i = 0; i < ds.Tables.Count; i++){tbs.Add(DataTableToDic(ds.Tables[i]));}return GetJsonResult(BackType.Success, tbs, "table数⽬:" + tbs.Count);}///<summary>///将实体转换为Dictionary///</summary>///<typeparam name="T">实体类</typeparam>///<param name="info">实体实例</param>///<returns></returns>public static Dictionary<string, object> EntityToDic<T>(T info) where T : class{var dic = new Dictionary<string, object>();if (info != null){var type = typeof(T);var fields = type.GetProperties();//实体属性集合foreach (var p in fields){dic.Add(, p.GetValue(info, null));}}return dic;}///<summary>///将实体转换为Hashtable///</summary>///<typeparam name="T">实体类</typeparam>///<returns></returns>public static Hashtable EntityToHashtable<T>(T info) where T : class{var ht = new Hashtable();if (info != null){var type = typeof(T);var fields = type.GetProperties();//实体属性集合foreach (var p in fields){ht.Add(, p.GetValue(info, null));}}return ht;}///<summary>/// Hashtable转化为实体///</summary>///<typeparam name="T">实体类型</typeparam>///<param name="ht">Hashtable数据</param>public static T HashtableToEntity<T>(Hashtable ht) where T : class{var type = typeof(T);var fields = type.GetProperties();//实体属性集合var info = (T)GetInstance(type);//构建实例foreach (var p in fields)//为实体实例赋值{if (ht.Count < 1) break;var key = ;if (ht.ContainsKey(key)){var ovalue = ht[key];ht.Remove(ovalue);if (ovalue == null || ovalue == DBNull.Value) continue;var ptype = GetStandardType(p.PropertyType);p.SetValue(info, Convert.ChangeType(ovalue, ptype), null);}}return info;}///<summary>///类型转换字典///</summary>private static Dictionary<Type, Type> TypeDic = new Dictionary<Type, Type>{{typeof(bool?),typeof(bool)},{typeof(int?),typeof(int)}, {typeof(long?),typeof(long)},{typeof(decimal?),typeof(decimal)},{typeof(DateTime?),typeof(DateTime)} };///<summary>///获取标准类型///</summary>public static Type GetStandardType(Type t){if (TypeDic.ContainsKey(t)){t = TypeDic[t];}return t;}///<summary>/// Json数据转实体///</summary>///<typeparam name="T">实体类型</typeparam>///<param name="json">Json数据</param>///<returns></returns>public static T JsonToEntity<T>(string json){var type = typeof(T);var fields = type.GetProperties();//实体属性集合var info = (T)GetInstance(type);//构建实例try{var obj = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(json);var list = obj.Properties();foreach (var p in fields)//为实体实例赋值{var item = list.FirstOrDefault(tp => pare(, , true) == 0);if (item != null && item.Value != null){var val = item.Value.ToString();if (String.IsNullOrEmpty(val) || val == "null") continue;var ptype = GetStandardType(p.PropertyType);p.SetValue(info, Convert.ChangeType(val, ptype), null);}}catch (Exception ex){TxtLog.LogErr("Json转实体解析异常:" + ex.Message);}return info;}///<summary>/// json数据转字典///</summary>///<param name="json">Json数据</param>public static Dictionary<string, object> JsonToDic(string json){var dic = new Dictionary<string, object>();try{var obj = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(json);var list = obj.Properties();foreach (var item in list){dic.Add(, item.Value);}}catch (Exception ex){TxtLog.LogErr("Json转Dic解析异常:" + ex.Message);}return dic;}#region实例⼯具⽅法///<summary>///实体克隆⽅法///</summary>private static MethodInfo wiseClone = typeof(object).GetMethod("MemberwiseClone", BindingFlags.NonPublic | BindingFlags.Instance);///<summary>///实体克隆委托⽅法///</summary>private static Func<object, object> doClone = Delegate.CreateDelegate(typeof(Func<object, object>), wiseClone) as Func<object, object>;///<summary>///对象实例缓存///</summary>private static System.Collections.Concurrent.ConcurrentDictionary<string, object> TCache = new System.Collections.Concurrent.ConcurrentDictionary<string, object>();///<summary>///缓存操作锁///</summary>private static object lockCache = new object();///<summary>///获取对象实例///</summary>///<param name="type">对象类型</param>public static object GetInstance(Type type){object obj;if (!TCache.TryGetValue(, out obj)){obj = Activator.CreateInstance(type);//构建实例lock (lockCache){TCache.TryAdd(, obj);}}return doClone(obj);}#endregion}帮助类中⽤的的两个辅助类代码:///<summary>///结果返回类型///</summary>public enum BackType{///<summary>///验证错误 -1///</summary>CheckErr = -1,///<summary>///失败 0///</summary>Failure = 0,///<summary>Success = 1,}///<summary>/// JSON数据格式字段///</summary>public class JsonItem{///<summary>///结果标识字段///</summary>public const string Result = "result";///<summary>///返回数据字段///</summary>public const string Data = "data";///<summary>///返回信息字段///</summary>public const string Msg = "msg";///<summary>///返回数据--数⽬字段///</summary>public const string Count = "count";///<summary>///返回数据--列表字段///</summary>public const string List = "list";}。
package com.site.util;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import .URLDecoder;import java.util.*;import java.util.zip.GZIPInputStream;import java.util.zip.GZIPOutputStream;import ng.StringUtils;public class StringHelper {/**解析Unicode码*/public static String decodeUnicode(String theString) { char aChar;int len = theString.length();StringBuffer outBuffer = new StringBuffer(len);for (int x = 0; x < len;) {aChar = theString.charAt(x++);if (aChar == '\\') {aChar = theString.charAt(x++);if (aChar == 'u') {int value = 0;for (int i = 0; i < 4; i++) {aChar = theString.charAt(x++);switch (aChar) {case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':value = (value << 4) + aChar - '0';break;case 'a':case 'b':case 'c':case 'd':case 'e':case 'f':value = (value << 4) + 10 + aChar - 'a';break;case 'A':case 'B':case 'C':case 'D':case 'E':case 'F':value = (value << 4) + 10 + aChar - 'A';break;default:throw new IllegalArgumentException("Malformed \\uxxxx encoding.");}}outBuffer.append((char) value);} else {if (aChar == 't'){aChar = '\t';}else if (aChar == 'r'){aChar = '\r';}else if (aChar == 'n'){aChar = '\n';}else if (aChar == 'f'){aChar = '\f';}outBuffer.append(aChar);}} else{outBuffer.append(aChar);}}return outBuffer.toString();}/**** 获取url参数集合* @param paramString* @return*/public static Map<String, String> getUrlParameters(String url){ Map<String, String> localHashMap = new LinkedHashMap<String, String>();String[] arrayOfString1 = url.split("\\?");if (arrayOfString1.length > 1){String str1 = arrayOfString1[1];for (String str2 : str1.split("&")){String[] arrayOfString3 = str2.split("=");String str3 = decodeUrl(arrayOfString3[0]);if (arrayOfString3.length > 1){String str4 = decodeUrl(arrayOfString3[1]);localHashMap.put(str3, str4);}}}return localHashMap;}/**** 获取url参数集合* @param paramString* @return*/public static Map<String, String> getUrlParameters(String url,String charSet){Map<String, String> localHashMap = new LinkedHashMap<String, String>();String[] arrayOfString1 = url.split("\\?");if (arrayOfString1.length > 1){String str1 = arrayOfString1[1];for (String str2 : str1.split("&")){String[] arrayOfString3 = str2.split("=");String str3 = decodeUrl(arrayOfString3[0],charSet);if (arrayOfString3.length > 1){String str4 = decodeUrl(arrayOfString3[1],charSet);localHashMap.put(str3, str4);}}}return localHashMap;}public static String decodeUrl(String paramString){try{return URLDecoder.decode(paramString, "UTF-8");}catch (Exception ex){MyPrint.printError(ex);}return paramString;}public static String decodeUrl(String paramString,String charSet){ try{return URLDecoder.decode(paramString, charSet);}catch (Exception ex){MyPrint.printError(ex);}return paramString;}public static String defaultIfEmpty(String str,String defaultStr){ if(StringUtils.isEmpty(str)||str.equalsIgnoreCase("null")){ return StringUtils.trim(defaultStr);}return str;}public static String defaultIfEmpty(Object obj,String defaultStr){ if(obj==null){return defaultStr;}return obj.toString();}public static String defaultIfEmpty(Object obj){return defaultIfEmpty(obj, "");}/*** 字符串的压缩** @param str* 待压缩的字符串* @return 返回压缩后的字符串* @throws IOException*/public static String compress(String str) throws IOException {if (null == str || str.length() <= 0) {return str;}// 创建一个新的 byte 数组输出流ByteArrayOutputStream out = new ByteArrayOutputStream();// 使用默认缓冲区大小创建新的输出流GZIPOutputStream gzip = new GZIPOutputStream(out);// 将 b.length 个字节写入此输出流gzip.write(str.getBytes());gzip.close();// 使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串return out.toString("ISO-8859-1");}/*** 字符串的解压** @param str* 对字符串解压* @return 返回解压缩后的字符串* @throws IOException*/public static String unCompress(String str) throws IOException {if (null == str || str.length() <= 0) {return str;}// 创建一个新的 byte 数组输出流ByteArrayOutputStream out = new ByteArrayOutputStream();// 创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes("ISO-8859-1"));// 使用默认缓冲区大小创建新的输入流GZIPInputStream gzip = new GZIPInputStream(in);byte[] buffer = new byte[256];int n = 0;while ((n = gzip.read(buffer)) >= 0) {// 将未压缩数据读入字节数组// 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此 byte数组输出流 out.write(buffer, 0, n);}// 使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串return out.toString();}}。