StringUtil(字符串等相关操作)

StringUtil字符串等相关操作

md5(String src) :byte[]

  获取指定字符串的MD5摘要。

  代码实例

  String src="泽元";

  byte[] b=StringUtil.md5(src);

  b为:[-77, -63, -45, -59, -80, -48, 44, -40, 13, 86, 14, -41, 21, -128, 85, -43]

  

md5(byte[] src) :byte[]

  获取指定二进制数组的MD5摘要。

  代码实例

  byte[] b="泽元".getBytes();

  byte[] b_1=StringUtil.md5(b);

  b_1为:[-77, -63, -45, -59, -80, -48, 44, -40, 13, 86, 14, -41, 21, -128, 85, -43]     

  

md5Hex(String src) :String

  将字符串进行md5摘要,然后输出成十六进制形式。

  代码实例

  String src="泽元";

  String src_H=StringUtil.md5Hex(src);

  src_H为:b3c1d3c5b0d02cd80d560ed7158055d5

  

sha1Hex(String src) :String

  将字符串进行sh1摘要,然后输出成十六进制形式。

  代码实例

  String src="泽元";

  String src_sH=StringUtil.sha1Hex(src);

  src_sH为:dee294e58b334db34ff3be2583eb1790babfb353

  

md5Base64(String str) :String

  将字符串进行MD5摘要,输出成BASE64形式。

  代码实例

  String src="泽元";

  String src_64=StringUtil.md5Base64(src);

  src_64为:s8HTxbDQLNgNVg7XFYBV1Q==

  

md5Base64FromHex(String md5str) :String

  将十六制进表示MD5摘要转换成BASE64格式。

  代码实例

  String src_64FH=StringUtil.md5Base64FromHex(src_H);

  参数src_H为:b3c1d3c5b0d02cd80d560ed7158055d5

  src_64FH为:s8HTxbDQLNgNVg7XFYBV1Q==

  

md5HexFromBase64(String base64str) :String

  将十六制进表示MD5摘要转换成BASE64格式。

  代码实例

  String src_HF64=StringUtil.md5Base64FromHex(src_64);

  参数src_64为:s8HTxbDQLNgNVg7XFYBV1Q==

  src_HF64为:b3c1d3c5b0d02cd80d560ed7158055d5

  

hexEncode(byte[] data) :String

  将二进制数组转换成十六进制表示。

  代码实例

  byte[] data="泽元迅长".getBytes();

  String data_H=StringUtil.hexEncode(data);

  data_H为:e6b3bde58583e8bf85e995bf

  

hexDecode(String str) :byte[](尚未完成)

  将字符串转换成十六进制表示。

  代码实例(尚有问题)

  byte[] da=StringUtil.hexDecode("泽元迅长");

  

byteToBin(byte[] bs) :String

  将字节数组转换成二制形式字符串。

  代码实例

  byte[] bs="泽元".getBytes();

  String bs_1=StringUtil.byteToBin(bs);

  bs_1为:11100110,10110011,10111101,11100101,10000101,10000011,

  

byteArrayToHexString(byte[] b) :String

  转换字节数组为十六进制字串。

  代码实例

  byte[] bs="泽元".getBytes();

  String bs_64=StringUtil.byteArrayToHexString(bs);

  bs_64为:e6 b3 bd e5 85 83

  

isUTF8(byte[] bs) :boolean

  判断指定的二进制数组是否是一个UTF-8字符串。

  代码实例

  byte[] bs="泽元".getBytes();

  boolean bs_1=StringUtil.isUTF8(bs);//true

  

base64Encode(byte[] b) :String

  返回二进制数组的BASE64编码结果。

  代码实例

  byte[] bs="泽元".getBytes();

  String bs_1=StringUtil.base64Encode(bs);

  bs_1为:5rO95YWD

  

base64Decode(String s) :byte[]

  将 BASE64 编码的字符串进行解码。

  代码实例

  byte[] bs_1=StringUtil.base64Decode(bs);

  参数bs为:5rO95YWD

  bs_1为:[-26, -77, -67, -27, -123, -125]

  

javaEncode(String txt) :String

  将字符串转换成可以在JAVA表达式中直接使用的字符串,处理一些转义字符。

  代码实例

  String txt="*?|/\t\"32";

  String txt_1=StringUtil.javaEncode(txt);

  txt实际为:*?|/    "32       PStex中的"\t"表示空格

  txt_1为:*?|/\t\"32

  

javaDecode(String txt) :String

  将StringUtil.javaEncode()处理过的字符还原。

  代码实例

  String txt="*?|/\t\"32";

  String txt_1=StringUtil.javaEncode(txt);

  String txt_2=StringUtil.javaDecode(txt_1);

  txt_2为:*?|/\t\"32

 

splitEx(String str, String spliter) :String[]

  将一个字符串按照指定的分割字符串分割成数组。分割字符串不作正则表达式处理,String类的split方法要求以正则表达式分割字符串,有时较为不便,可以转为采用本方法。

  代码实例

  String str="fa\\sda\\as/ad/asd\\asfa";

  String [] str_1=StringUtil.splitEx(str, "\\");

  str_1为:[fa, sda, as/ad/asd, asfa]

  

replaceEx(String str, String subStr, String reStr) :String

  将一个字符串中的指定片段全部替换,替换过程中不进行正则处理。使用String类的replaceAll时要求片段以正则表达式形式给出,有时较为不便,可以转为采用本方法。

  代码实例

  String str="abcdefghijklmn";

  String subStr="def";

  String reStr="泽元迅长";

  String str_1=StringUtil.replaceEx(str, subStr, reStr);

  str_1为:abc泽元迅长ghijklmn

  

replaceAllIgnoreCase(String source, String oldstring, String newstring) :String

  不区分大小写的全部替换,替换时使用了正则表达式。

  代码实例

  String source="abcdefghijklmn";

  String oldStr="DEF";

  String newStr="FsfdsW";

  String s=StringUtil.replaceAllIgnoreCase(source, oldStr, newStr);

  s为:abcFsfdsWghijklmn

  

urlEncode(String str) :String

  以全局编码进行URL编码。

  代码实例

  String url="http://localhost:8080/zcms3x/application.zhtml";

  String url_1=StringUtil.urlEncode(url);

  url_1http%3A%2F%2Flocalhost%3A8080%2Fzcms3x%2Fapplication.zhtml

  

urlDecode(String str) :String

  以全局编码进行URL解码。

  代码实例

  String url_2=StringUtil.urlDecode(url_1);

  参数url_1http%3A%2F%2Flocalhost%3A8080%2Fzcms3x%2Fapplication.zhtml

  url_2http://localhost:8080/zcms3x/application.zhtml

  

urlEncode(String str, String charset) :String

  以指定编码进行URL编码

  代码实例

  String url="http://localhost:8080/zcms3x/application.zhtml";

  String url_3=StringUtil.urlEncode(url, "UTF-16");

  url_3为:http%FE%FF%00%3A%00%2F%00%2Flocalhost%FE%FF%00%3A8080%FE%FF%00%2Fzcms3x%FE%FF%00%2Fapplication.zhtml

  

urlDecode(String str, String charset) :String

  以指定编码进行URL解码。

  代码实例

  String url_4=StringUtil.urlDecode(url_3, "UTF-16");

  参数url_3为:http%FE%FF%00%3A%00%2F%00%2Flocalhost%FE%FF%00%3A8080%FE%FF%00%2Fzcms3x%FE%FF%00%2Fapplication.zhtml

  url_4为:http://localhost:8080/zcms3x/application.zhtml

  

htmlEncode(String txt) :String

  对字符串进行HTML编码。

  代码实例

  String str_2 = "";

  try {

  String str = "G:" + File.separator + "new.html";

  File f = new File(str);

  BufferedReader in = new BufferedReader(new FileReader(f));

  String str_1;

  //new.html内容赋值到字符串str_2中;

  while ((str_1 = in.readLine()) != null) {

  str_2 += str_1;

  }

  in.close();

  } catch (IOException e) {

  e.getStackTrace();

  }

  String htmlEncode=StringUtil.htmlEncode(str_2);

  htmlEncode为:<html style="overflow:auto"><head><meta http-equiv="Content-Type"……

  String htmlDecode=StringUtil.htmlDecode(htmlEncode);

  

htmlDecode(String txt) :String

  对字符串进行HTML解码。

  代码实例

  String str_2 = "";

  try {

  String str = "G:" + File.separator + "new.html";

  File f = new File(str);

  BufferedReader in = new BufferedReader(new FileReader(f));

  String str_1;

  //new.html内容赋值到字符串str_2中;

  while ((str_1 = in.readLine()) != null) {

  str_2 += str_1;

  }

  in.close();

  } catch (IOException e) {

  e.getStackTrace();

  }

  String htmlEncode=StringUtil.htmlEncode(str_2);

  String htmlDecode=StringUtil.htmlDecode(htmlEncode);

  htmlDecode为:new.html内容与str_2一致。

  

quotEncode(String txt) :String

  替换字符串中的双引号和“&”。

  代码实例

  String txt="双引号:\":&";

  String t_1=StringUtil.quotEncode(txt);// 双引号:" :&

  

quotDecode(String txt) : String

  还原通过StringUtil.quotEncode()编码的字符串。

  代码实例

  String txt="双引号:\":&";

  String t_1=StringUtil.quotEncode(txt);// 双引号:" :&

  String t_2=StringUtil.quotDecode(t_1);// 双引号:" :&

  

escape(String src) :String

  JavascriptescapeJAVA实现。

  代码实例

  String txt="?!=()#%&";

  String txt_1="Visit Zving!";

  String txt_2=StringUtil.escape(txt);

  String txt_3=StringUtil.escape(txt_1);

  txt_2为:%3f%21%3d%28%29%23%25%26

  txt_3为:Visit%20Zving%21

  

unescape(String src) :String

  JavascriptunescapeJAVA实现。

  代码实例

  String txt="?!=()#%&";

  String txt_1="Visit Zving!";

  String txt_2=StringUtil.escape(txt);

  String txt_3=StringUtil.escape(txt_1);

  String unTxt_1=StringUtil.unescape(txt_2);// ?!=()#%&

  String unTxt_2=StringUtil.unescape(txt_3);// Visit Zving!

  

leftPad(String srcString, char c, int length) :String

  在一字符串左边填充若干指定字符,使其长度达到指定长度。

  代码实例

  String srcString="Zving";

  char c='a';

  String str=StringUtil.leftPad(srcString, c, 10);// aaaaaZving

  

subString(String src, int length) :String

  将长度超过length的字符串截取length长度,若不足,则返回原串。

  代码实例

  String src="Visit Zving";

  String subStr=StringUtil.subString(src, 5);// Visit

  String src_1="欢迎来到-Zving";

  String subStr_1=StringUtil.subString(src, 5);// 欢迎来到-

  

subStringEx(String src, int length) :String

  将长度超过length的字符串截取length长度,若不足,则返回原串。其中ASCII字符算1个长度单位,非ASCII字符算2个长度单位。

  代码实例

  String src="欢迎来到-Zving";

  String subStr=StringUtil.subStringEx(src, 5);// 欢迎

  String src_1="欢迎来到-Zving";

  String subStr_1=StringUtil.subString(src, 5);// 欢迎来到-

  

lengthEx(String src) :int

  获得字符串的长度,其中ASCII字符算1个长度单位,ASCII字符算两个长度单位。

  代码实例

  String src="欢迎来到-Zving";

  int len=StringUtil.lengthEx(src);//14

  

lengthEx(String src, boolean UTF8Flag) :int

  获得字符串的长度,其中ASCII字符算1个长度单位,如果UTF8Flagture,则非ASCII字符算3个字节,否则非ASCII字符算2个字节。

  代码实例

  String src="欢迎来到-Zving";

  int len_1=StringUtil.lengthEx(src, true);//18

  int len_2=StringUtil.lengthEx(src, false);//14

  

rightPad(String srcString, char c, int length) :String

  在一字符串右边填充若干指定字符,使其长度达到指定长度。

  代码实例

  String srcString="Zving";

  char c='a';

  String str=StringUtil.rightPad(srcString, c, 10);// Zvingaaaaa

  

verify(String value, String rule) :boolean(尚未完成)

  以指定的校验规则校验字符串。

  代码实例

  byte[] bs="泽元".getBytes();

  boolean bs_1=StringUtil.isUTF8(bs);//true

  

rightTrim(String src) :String

  清除字符右边的空格。

  代码实例

  String src="Zving     ";

  String str=StringUtil.rightTrim(src);//Zving

  

printStringWithAnyCharset(String str) (尚未完成)

  历遍所有字符集,看哪种字符集下可以正确转化。

  代码实例

 

  

toSBC(String input) :String

  半角转全角,转除英文字母之外的字符。

  代码实例

  String input="欢迎来到Zving!!;欢迎来到Zving!!";

  String str=StringUtil.toSBC(input);

  str为:欢迎来到Zving!!;欢迎来到Zving!!

  

toNSBC(String input) :String

  半角转全角,转所有能转为全角的字符,包括英文字母。

  代码实例

  String input="欢迎来到Zving!!;欢迎来到Zving!!";

  String str=StringUtil.toNSBC(input);

  str为:欢迎来到Zving!!;欢迎来到Zving!!

  

toDBC(String input) :String

  全角转半角的函数 全角空格为12288,半角空格为32,其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248。

  代码实例

  String input="欢迎来到Zving!!;欢迎来到Zving!!";

  String str=StringUtil.toDBC(input);

  str为:欢迎来到Zving!!;欢迎来到Zving!!

  

getChineseFullSpelling(String cnStr) :String

  返回字符串的全拼,是汉字转化为全拼,其它字符不进行转换。

  代码实例

  String cnStr="蔡文明";

  String str_1=StringUtil.getChineseFullSpelling(cnStr);

  str_1为:CaiWenMing

  

getChinesePersonNameSpelling(String cnStr) :String

  返回姓名拼音,每个汉字拼音的首字母大写。

  代码实例

  String cnStr="蔡文明";

  String str_2=StringUtil.getChinesePersonNameSpelling(cnStr);

  str_2为:Cai

  

getChineseCapitalizedSpelling(String cnStr) :String

  全角转半角的函数 全角空格为12288,半角空格为32,其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248。

  代码实例

  String cnStr="蔡文明";

  String str_3=StringUtil.getChineseCapitalizedSpelling(cnStr);

  str_3为:CWM

  

getHtmlTitle(File f) :String

  从一段html文本中提取出<title>标签内容。

  代码实例

  String str = "G:" + File.separator + "new.html";

  File file = new File(str);

  String title = StringUtil.getHtmlTitle(file);//会员登录

  

getHtmlTitle(String html) :String

  从一段html文本中提取出<title>标签内容。

  代码实例

  String str_2 = "";

  try {

  String str = "G:" + File.separator + "new.html";

  File f = new File(str);

  BufferedReader in = new BufferedReader(new FileReader(f));

  String str_1;

  //new.html内容赋值到字符串str_2中;

  while ((str_1 = in.readLine()) != null) {

  str_2 += str_1;

  }

  in.close();

  } catch (IOException e) {

  e.getStackTrace();

  }

  String title_1 = StringUtil.getHtmlTitle(str_2);

  title_1为:会员登录

  

clearHtmlTag(String htmlStr):String

  清除HTML文本中所有标签。

  代码实例

  String str_2 = "";

  try {

  String str = "G:" + File.separator + "new.html";

  File f = new File(str);

  BufferedReader in = new BufferedReader(new FileReader(f));

  String str_1;

  //new.html内容赋值到字符串str_2中;

  while ((str_1 = in.readLine()) != null) {

  str_2 += str_1;

  }

  in.close();

  } catch (IOException e) {

  e.getStackTrace();

  }

  String htmlStr = StringUtil.clearHtmlTag(str_2);

  htmlStr为:会员登录 发布日期 状态 排序

  

htmlTagEncode(String str) :String

  将内容中的<*> 进行html编码。

  代码实例

  String str_2 = "";

  try {

  String str = "G:" + File.separator + "new.html";

  File f = new File(str);

  BufferedReader in = new BufferedReader(new FileReader(f));

  String str_1;

  //new.html内容赋值到字符串str_2中;

  while ((str_1 = in.readLine()) != null) {

  str_2 += str_1;

  }

  in.close();

  } catch (IOException e) {

  e.getStackTrace();

  }

  String htmlTag = StringUtil.htmlTagEncode(str_2);

  htmlTag为:&lt;html&nbsp;style=&quot;overflow:auto&quot;&gt;&lt;head&gt;&lt;meta&nbsp;http-equiv=&quot;Content-Type&quot;……

  

capitalize(String str) :String

  首字母大写。

  代码实例

  String str="caiwenming";//Caiwenming

  

isEmpty(String str) :boolean

  字符串是否为空,null或空字符串时返回true,其他情况返回false。

  代码实例

  boolean empty_1=StringUtil.isEmpty("");//true

  boolean empty_2=StringUtil.isEmpty(null);//true

  boolean empty_3=StringUtil.isEmpty("null");//false

  boolean empty_4=StringUtil.isEmpty("cai");//false

  

isNotNull(String str) :boolean

  字符串是否不为空,null、空字符串或者"null" 字符串时返回false,其他情况返回true。

  代码实例

  boolean notNull_1=StringUtil.isNotNull(null);//false

  boolean notNull_2=StringUtil.isNotNull("null");//false

  boolean notNull_3=StringUtil.isNotNull ("");//false

  boolean notNull_4=StringUtil.isNotNull("cai");//true

  

noNull(String string, String defaultString) :String

  字符串为空时返回defaultString,否则返回原串。

  代码实例

  String noNull_1=StringUtil.noNull(null , "cai");//cai

  String noNull_2=StringUtil.noNull("null", "cai");//null(字符串)

  String noNull_3=StringUtil.noNull("" , "cai");//cai

  String noNull_4=StringUtil.noNull("cai" , "wenming");//cai

  

noNull(String string) :String

  字符串为空时返回defaultString,否则返回空字符串。

  代码实例

  String noNull_1=StringUtil.noNull(null);//””()

  String noNull_2=StringUtil.noNull("null");//null(字符串)

  String noNull_3=StringUtil.noNull("");//””()

  String noNull_4=StringUtil.noNull("cai");cai

  

join(Object[] arr) :String

  将一个数组拼成一个字符串,数组项之间以逗号分隔。

  代码实例

  Object[] arr={1,null,"Zving","a",true,"","zcms"};

  String str=StringUtil.join(arr);// 1,null,Zving,a,true,,zcms

  

join(Object[][] arr) :String

  将一个二维数组拼成一个字符串,第二维以逗号分隔,第一维以换行分隔。

  代码实例(有问题)

  Object[][] arr_1={{1,2,3},{"a","b","c"},{true,false,true}};

  String str_1=StringUtil.join(arr_1);

  str_1为:1,2,3,a,b,c,true,false,true

  String str_2=StringUtil.join(arr_1, "b");

  String str_3=StringUtil.join(arr_1, "a", "c");

  

join(Object[] arr, String spliter) :String

  将一个数组以指定的分隔符拼成一个字符串。

  代码实例(有问题)

  Object[][] arr_1={{1,2,3},{"a","b","c"},{true,false,true}};

  String str_2=StringUtil.join(arr_1, "b");

  str_2为:1,2,3,a,b,c,true,false,true

  

count(String str, String findStr) :int

  计算一个字符串中某一子串出现的次数。

  代码实例

  String str="a1bbbbbbd2";

  int count=StringUtil.count(str, "b");//6

  

isLetterOrDigit(String str) :boolean

  判断字符串是否全部由数字或字母组成。

  代码实例

  boolean b_1=StringUtil.isLetterOrDigit("1a");//true

  boolean b_2=StringUtil.isLetterOrDigit("1");//true

  boolean b_3=StringUtil.isLetterOrDigit("a");//true

  

isLetter(String str) :boolean

  判断字符串是否全部字母组成。

  代码实例

  boolean b_1=StringUtil.isLetter("a");//true

  boolean b_2=StringUtil.isLetter("1a");//false

  

isDigit(String str) :boolean

  判断字符串是否全部由数字组成。

  代码实例

  boolean b_1=StringUtil.isDigit("1");//true

  boolean b_2=StringUtil.isDigit("a1");//false

  

containsChinese(String str) :boolean

  判断字符串中是否含有中文字符。

  代码实例

  boolean b_1=StringUtil.containsChinese("a");//false

  boolean b_2=StringUtil.containsChinese("中国1a");//true

  

checkID(String str) :boolean(尚未完成)

  检查ID,防止SQL注入,主要是在删除时传入多个ID时使用。

  代码实例

  String input="欢迎来到Zving!!;欢迎来到Zving!!";

  String str=StringUtil.toDBC(input);

  str为:欢迎来到Zving!!;欢迎来到Zving!!

  

plitToMapx(String str,String entrySpliter,String keySpliter):Mapx<String, String>

  将一个类似于Name=John,,Age=18,Gender=3的字符串拆成一个Mapx。

  代码实例

  String str="Name=John,Age=18,Gender=3";

  Mapx<String, String> map=StringUtil.splitToMapx(str, ",","=");

  map为:{Name=John, Age=18, Gender=3}

  

GBKToUTF8(String chinese) :byte[]

  将一个GBK编码的字符串转成UTF-8编码的二进制数组,转换后没有BOM位。

  代码实例

  byte[] cn=StringUtil.GBKToUTF8("泽元");

  cn为:[-26, -77, -67, -27, -123, -125]

  

GBKToUTF8(String chinese, boolean bomFlag) :byte[]

  将一个GBK编码的字符串转成UTF-8编码的二进制数组,如果参数bomFlagtrue,则转换后有BOM位。

  代码实例

  byte[] cn_1=StringUtil.GBKToUTF8("泽元", true);

  byte[] cn_2=StringUtil.GBKToUTF8("泽元", false);

  cn_1为:[-17, -69, -65, -26, -77, -67, -27, -123, -125]

  cn_2为:[-26, -77, -67, -27, -123, -125]

  

UTF8ToGBK(String chinese) :byte[](尚未完成)

  将UTF-8编码的字符串转成GBK编码的字符串。

  代码实例

 

  

clearForXML(String str) :String(尚未完成)

  去掉XML字符串中的非法字符XML0x00-0x20 都会引起一定的问题。

  代码实例

 

  

concat(Object... args) :String

  拼接字符串。

  代码实例

  String str=StringUtil.concat(1,2,3,"str",true);

  str为:123strtrue

 

hackIE