常用的字符串操作
Posted Steady_Man
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用的字符串操作相关的知识,希望对你有一定的参考价值。
StrFunc
----------
StrFunc是一个字符串操作的函数库,这个类不能被实例化,它里面定义的全部是静态函数。
--------------------------------------------------------------
常用方法示例说明:
isNull:判断指定字符串是否为空
参数说明:
@param String 要判断是否为空的字符串
@return boolean 为空或长度为0,返回true,否则返回false
使用举例:
StrFunc.isNull(" "); 有2个空格的字符串,返回false
StrFunc.isNull(null); 返回true
if (StrFunc.isNull(userStr)){
throw new Exception("没有指定分配角色的用户或角色!");
}
compareStr:比较2个字符串是否一致
参数说明:
@param str1 要进行比较的字符串
@param str2 要进行比较的字符串
@return 都为空返回true,都不为空且内容一样也返回true,否则返回false
使用举例:
if(!StrFunc.compareStr(oldUpid, upId)){
…
}
比较字符串的另外几个方法:
compareStrIgnoreCase(final String str1, final String str2) 比较时忽略大小写
compareStrIgnoreBlank(final String str1, final String str2) 字符串内容一致返回true,反之false。比较时忽略""和null的区别
compareStrIgnoreBlankAndCase(final String str1, final String str2) 比较时忽略""和null的区别,忽略大小写
compareStrInt(final String str1, final String str2) 比较字符串的大小,如果str1>str2,返回正整数;如果str1=str2,返回0;如果str1<str2,返回负整数
str2Text:将指定的字符串中的不可见字符转换为可见字符的表示
不可见字符是指在java中有特殊含义的字符如:换行符(“\\n”) ,回车(“\\r”) 等。
参数说明:
@param String 要转换的字符串
@return String 返回可见字符串
使用举例:
StrFunc.str2Text("A B C");
返回值为:
A\\u20B\\tC
text2Str: str2Text的逆方法
参数说明:
@param String 转义后的可见文本
@return String 将字符串txt中的\\r,\\n,\\t等明文的转义写法,转成对应的字符
使用举例:
StrFunc.text2Str(“A\\u20B\\tC”);
返回值为:
A B C
date2str:将日期对象格式化为字符串
参数说明:
@param dat Calendar类型,要转换的日期
@param fmt 要转换成的格式
@return 日期字符串
- y表示年,m表示月,d表示日
- y/m/d取值为阿拉伯数字(123),Y/M/D取值为汉字(一二三)
- 2006,对“yy年”返回“06年”;对“yyyy年”则返回“2006年”
- h/n/s分别对应时、分、秒;q、qq、Q、QQ,表示季度
- mmm表示用英文显示月份
使用举例:
Calendar c = Calendar.getInstance();
c.set(2013,6, 2);
StrFunc.date2str(c, “YYYY年MM月DD日");
其返回内容为:二零一三年七月二日
重载方法:
date2str(Object dat, String fmt)
将日期对象格式化为字符串,对象可传递:
Date,Timestamp,Calendar
double2Str:此函数负责将浮点数转成字符串,用来显示。
参数说明:
@param double 要转换成串的浮点数
如果d为Double.NaN,返回长度为0的字符串;如果为Double.POSITIVE_INFINITY,返回∞;如果为Double.NEGATIVE_INFINITY,返回﹣∞;
@param mindeclen 设置小数部分允许的最小位数
@param maxdeclen 设置小数部分允许的最大位数
@param groupnum 是否将这种格式应用分组(整数部分,每3位一个逗号)
@return 浮点数字符串
该方法转换成字符串后的数值只能保证最大15或16位有效位数
使用举例:
StrFunc.double2str(22222.1449,3,3,false);
其返回内容为:22222.145
StrFunc.double2str(-345678.12345, 0, 4, true);
其返回内容为:-345,678.1235
StrFunc.double2str(81.1468032741434, -3, 5, true);
其返回内容为:81.1468
重载方法:
double2str(final double d)
小数部分允许的最小位数为0,小数部分允许的最大位数为10,不分组
ensureEndWith:确保字符串以串end结尾,如果r已经是end结尾或end为null,则不改变
参数说明:
@param r 字符串
@param end 字符串
@return 如果r字串以end结尾或end为null,直接返回r;若r字串不以end结尾,且end不为null,返回r+end。
使用举例:
StrFunc.ensureEndWith(file,“.tmp");
StrFunc.ensureEndWith(folder, File.separator);
ensureStartEndWith(final String s, final String start, final String end) 确保s以start开头end结尾
startEndWith(final String r, final String start, final String end) 判断r是否以start开头且以end结尾,返回ture/false
parseBoolean:将字符串解析为boolean值。
参数说明:
@param str 要转换为boolean类型的字符串
@param def 默认返回值,如果转换不成功返回def
@return 对应的boolean类型值
若给定的字符串是true、t、1、是,忽略大小写,返回true
若字符串为false、f、0、否,忽略大小写,返回false
使用举例:
StrFunc.parseBoolean("trUE", false); 返回true
StrFunc.parseBoolean("dsfdgedf", false); 返回默认值false
str2int:将字符串转换为int
参数说明:
@param o 要转换为int类型的对象
@param def 转换不成功返回的默认值
@return 将传入的字符串转换为int返回,如果转换不成功那么返回def
使用举例:
int pagesize = StrFunc.str2int(req.getParameter("pagesize"), PAGESIZE);
null2blank:空对象转换成长度为0的字符串
参数说明:
@param str 对象
@return 如果str为null,返回长度为0字符串,否则返回str
使用举例:
return "dsn/showdsnplugin.do?group="+StrFunc.null2blank(group);
其他类似方法:
null2default(final String str, final String def)
如果str为空时,就用def的值进行替代
format2htmlStr:将字符串转换为可以在html里显示的字符
参数说明:
@param message 需要转换的字符串
@param ignoreBlank 是否忽略对空格的处理,对空格的处理是将其转换为 字符输出
@param quateit 是否在返回的结果中增加双引号
@param toTextArea 是否将结果输出到文本编辑框TextArea内,如果是则不需要对回车换行与制表符进行转换
@return 处理后的字符串
使用举例:
StrFunc.format2HtmlStr("<script>alert(\'XSS击\\r\\nO K!\');</script>");
返回字符串:
<script>alert(\'XSS击<br/>O K!\');</script>
参数说明:
@param message 需要转换的字符串
@return 处理后的字符串
使用举例:
StrFunc.format2HtmlStr(“<script>alert(‘XSS攻击\\r\\nO K!\');</script>");
返回字符串:
<script>alert(‘XSS攻击<br/>O K!\');</script>
相应的其他方法:
format2HtmlStr_ignoreBlank(final String s)
忽略空格,即空格不转换成 ,原样输出。其余处理方式与format2HtmlStr一致
format2HtmlStr(final String message, final boolean ignoreBlank, final boolean quateit, final boolean toTextArea)
quateit是否在返回的结果中增加双引号
toTextArea 是否将结果输出到文本编辑框TextArea内,如果是则不需要对回车换行与制表符进行转换。即:如果传参false,回车换行符会转换成<br/> ,否则不进行转换,\\r依旧返回\\r,\\n依旧返回\\n。
contains:判断一个字符串是否在一个字符串数组中
参数说明:
@param array 被搜索的串数组
@param element 要搜索的字符串元素
@return element串若在串数组array中返回ture,反之false
使用举例:
StrFunc.contains(new String[]{"dfa","asdfds","c"}, "asdfds"); 返回true
if(StrFunc.contains(dataBbh.getUpids(), bbh.getId())){ …
}
isNumber:判断字串是否是数字类型字串,包括int,double
参数说明:
@param s 要判断是否为数字类型的字符串
@return s是数字类型字符串返回true,如果为null或长度为0,返回false
使用举例:
StrFunc.isNumber("0x7F"); 返回false
StrFunc.isNumber(cl.getProperty("x")) ? Integer.parseInt(cl.getProperty("x")) : -1;粗体粗体
以上是关于常用的字符串操作的主要内容,如果未能解决你的问题,请参考以下文章