??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
除了构造器Q?span style="font-family: verdana,geneva">StringUtils 中一共有130多个ҎQƈ且都?static 的,所以我们可以这栯?StringUtils.xxx()
下面分别对一些常用方法做要介l:
1. public static boolean isEmpty(String str)
判断某字W串是否为空QؓI的标准?str==null ?str.length()==0
下面?StringUtils 判断是否为空的示例:
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //注意?StringUtils 中空g非空处理
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
2. public static boolean isNotEmpty(String str)
判断某字W串是否非空Q等?!isEmpty(String str)
下面是示例:
StringUtils.isNotEmpty(null) = false
StringUtils.isNotEmpty("") = false
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty("bob") = true
StringUtils.isNotEmpty(" bob ") = true
3. public static boolean isBlank(String str)
判断某字W串是否为空或长度ؓ0或由I白W?span style="font-family: verdana,geneva">(whitespace) 构成
下面是示例:
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true //对于制表W、换行符、换늬和回车符
StringUtils.isBlank() //均识为空白符
StringUtils.isBlank("\b") = false //"\b"为单词边界符
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
4. public static boolean isNotBlank(String str)
判断某字W串是否不ؓIZ长度不ؓ0且不q白符(whitespace) 构成Q等?!isBlank(String str)
下面是示例:
StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank("\t \n \f \r") = false
StringUtils.isNotBlank("\b") = true
StringUtils.isNotBlank("bob") = true
StringUtils.isNotBlank(" bob ") = true
5. public static String trim(String str)
L字符串两端的控制W?span style="font-family: verdana,geneva">(control characters, char <= 32) , 如果输入?null 则返?span style="font-family: verdana,geneva">null
下面是示例:
StringUtils.trim(null) = null
StringUtils.trim("") = ""
StringUtils.trim(" ") = ""
StringUtils.trim(" \b \t \n \f \r ") = ""
StringUtils.trim(" \n\tss \b") = "ss"
StringUtils.trim(" d d dd ") = "d d dd"
StringUtils.trim("dd ") = "dd"
StringUtils.trim(" dd ") = "dd"
6. public static String trimToNull(String str)
L字符串两端的控制W?span style="font-family: verdana,geneva">(control characters, char <= 32) ,如果变ؓ null ?"Q则q回 null
下面是示例:
StringUtils.trimToNull(null) = null
StringUtils.trimToNull("") = null
StringUtils.trimToNull(" ") = null
StringUtils.trimToNull(" \b \t \n \f \r ") = null
StringUtils.trimToNull(" \n\tss \b") = "ss"
StringUtils.trimToNull(" d d dd ") = "d d dd"
StringUtils.trimToNull("dd ") = "dd"
StringUtils.trimToNull(" dd ") = "dd"
7. public static String trimToEmpty(String str)
L字符串两端的控制W?span style="font-family: verdana,geneva">(control characters, char <= 32) ,如果变ؓ null ?"" Q则q回 ""
下面是示例:
StringUtils.trimToEmpty(null) = ""
StringUtils.trimToEmpty("") = ""
StringUtils.trimToEmpty(" ") = ""
StringUtils.trimToEmpty(" \b \t \n \f \r ") = ""
StringUtils.trimToEmpty(" \n\tss \b") = "ss"
StringUtils.trimToEmpty(" d d dd ") = "d d dd"
StringUtils.trimToEmpty("dd ") = "dd"
StringUtils.trimToEmpty(" dd ") = "dd"
8. public static String strip(String str)
L字符串两端的I白W?span style="color: #0000ff; font-family: verdana,geneva">(whitespace) Q如果输入ؓ null 则返?null
下面是示?注意?span style="color: #0000ff; font-family: verdana,geneva"> trim() 的区?Q?br />
StringUtils.strip(null) = null
StringUtils.strip("") = ""
StringUtils.strip(" ") = ""
StringUtils.strip(" \b \t \n \f \r ") = "\b"
StringUtils.strip(" \n\tss \b") = "ss \b"
StringUtils.strip(" d d dd ") = "d d dd"
StringUtils.strip("dd ") = "dd"
StringUtils.strip(" dd ") = "dd"
9. public static String stripToNull(String str)
L字符串两端的I白W?span style="color: #0000ff; font-family: verdana,geneva">(whitespace) Q如果变?null ?"Q则q回 null
下面是示?注意?trimToNull() 的区?Q?br />
StringUtils.stripToNull(null) = null
StringUtils.stripToNull("") = null
StringUtils.stripToNull(" ") = null
StringUtils.stripToNull(" \b \t \n \f \r ") = "\b"
StringUtils.stripToNull(" \n\tss \b") = "ss \b"
StringUtils.stripToNull(" d d dd ") = "d d dd"
StringUtils.stripToNull("dd ") = "dd"
StringUtils.stripToNull(" dd ") = "dd"
10. public static String stripToEmpty(String str)
L字符串两端的I白W?span style="color: #0000ff; font-family: verdana,geneva">(whitespace) Q如果变?span style="font-family: verdana,geneva"> null ?span style="font-family: verdana,geneva">"" Q则q回""
下面是示?注意?trimToEmpty() 的区?Q?br />
StringUtils.stripToNull(null) = ""
StringUtils.stripToNull("") = ""
StringUtils.stripToNull(" ") = ""
StringUtils.stripToNull(" \b \t \n \f \r ") = "\b"
StringUtils.stripToNull(" \n\tss \b") = "ss \b"
StringUtils.stripToNull(" d d dd ") = "d d dd"
StringUtils.stripToNull("dd ") = "dd"
StringUtils.stripToNull(" dd ") = "dd"
以下Ҏ只介l其功能Q不再D例:
11. public static String strip(String str, String stripChars)
L str 两端的在 stripChars 中的字符?br />
如果 str ?null 或等?span style="font-family: verdana,geneva">"" Q则q回它本w;
如果 stripChars ?null ?span style="font-family: verdana,geneva">"" Q则q回 strip(String str) ?br />
12. public static String stripStart(String str, String stripChars)
?1怼Q去?span style="font-family: verdana,geneva"> str 前端的在 stripChars 中的字符?br />
13. public static String stripEnd(String str, String stripChars)
?1怼Q去?str 末端的在 stripChars 中的字符?br />
14. public static String[] stripAll(String[] strs)
对字W串数组中的每个字符串进?strip(String str) Q然后返回?br />
如果 strs ?null ?strs 长度?Q则q回 strs 本n
15. public static String[] stripAll(String[] strs, String stripChars)
对字W串数组中的每个字符串进?strip(String str, String stripChars) Q然后返回?br />
如果 strs ?null ?strs 长度?Q则q回 strs 本n
16. public static boolean equals(String str1, String str2)
比较两个字符串是否相{,如果两个均ؓI则也认为相{?br />
17. public static boolean equalsIgnoreCase(String str1, String str2)
比较两个字符串是否相{,不区分大写Q如果两个均为空则也认ؓ相等?br />
18. public static int indexOf(String str, char searchChar)
q回字符 searchChar 在字W串 str 中第一ơ出现的位置?br />
如果 searchChar 没有?str 中出现则q回-1Q?br />
如果 str ?null ?"" Q则也返?1
19. public static int indexOf(String str, char searchChar, int startPos)
q回字符 searchChar ?startPos 开始在字符?str 中第一ơ出现的位置?br />
如果?startPos 开?searchChar 没有?span style="font-family: verdana,geneva"> str 中出现则q回-1Q?br />
如果 str ?null ?"" Q则也返?1
20. public static int indexOf(String str, String searchStr)
q回字符?searchStr 在字W串 str 中第一ơ出现的位置?br />
如果 str ?null ?searchStr ?null 则返?1Q?br />
如果 searchStr ?"" ,?span style="font-family: verdana,geneva"> str Z?null Q则q回0Q?br />
如果 searchStr 不在 str 中,则返?1
21. public static int ordinalIndexOf(String str, String searchStr, int ordinal)
q回字符?searchStr 在字W串 str 中第 ordinal ơ出现的位置?br />
如果 str=null ?searchStr=null ?ordinal<=0 则返?1
举例(*代表L字符?Q?br />
StringUtils.ordinalIndexOf(null, *, *) = -1
StringUtils.ordinalIndexOf(*, null, *) = -1
StringUtils.ordinalIndexOf("", "", *) = 0
StringUtils.ordinalIndexOf("aabaabaa", "a", 1) = 0
StringUtils.ordinalIndexOf("aabaabaa", "a", 2) = 1
StringUtils.ordinalIndexOf("aabaabaa", "b", 1) = 2
StringUtils.ordinalIndexOf("aabaabaa", "b", 2) = 5
StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
StringUtils.ordinalIndexOf("aabaabaa", "bc", 1) = -1
StringUtils.ordinalIndexOf("aabaabaa", "", 1) = 0
StringUtils.ordinalIndexOf("aabaabaa", "", 2) = 0
22. public static int indexOf(String str, String searchStr, int startPos)
q回字符?searchStr ?startPos 开始在字符?str 中第一ơ出现的位置?br />
举例(*代表L字符?Q?br />
StringUtils.indexOf(null, *, *) = -1
StringUtils.indexOf(*, null, *) = -1
StringUtils.indexOf("", "", 0) = 0
StringUtils.indexOf("aabaabaa", "a", 0) = 0
StringUtils.indexOf("aabaabaa", "b", 0) = 2
StringUtils.indexOf("aabaabaa", "ab", 0) = 1
StringUtils.indexOf("aabaabaa", "b", 3) = 5
StringUtils.indexOf("aabaabaa", "b", 9) = -1
StringUtils.indexOf("aabaabaa", "b", -1) = 2
StringUtils.indexOf("aabaabaa", "", 2) = 2
StringUtils.indexOf("abc", "", 9) = 3
23. public static int lastIndexOf(String str, char searchChar)
基本原理?8
24. public static int lastIndexOf(String str, char searchChar, int startPos)
基本原理?9
25. public static int lastIndexOf(String str, String searchStr)
基本原理?0
26. public static int lastIndexOf(String str, String searchStr, int startPos)
基本原理?2
另附Q?br />
String ?split(String regex) Ҏ的用?br />
如果我们需要把某个字符串拆分ؓ字符串数l,则通常?span style="font-family: verdana,geneva"> split(String regex) 来实现?br />
例如Q?br />
l果为:
4
aa
bb
cc
dd
如果Q?br />
String str = "aa.bb.cc.dd";
String[] strArray = str.split(".");
则结果ؓQ?
Z么结果不是我们所想的呢,原因是参?span style="font-family: verdana,geneva"> String regex 是正则表辑ּ (regular expression) 而不是普通字W串Q?"." 在正则表辑ּ中有Ҏ含义Q表C匹配所有单个字W。如果要那样拆分Q我们必ȝ "." q行转义Q?span style="font-family: verdana,geneva">String[] strArray = str.split(".") 修改?String[] strArray = str.split("\\.") 卛_?br />
另外有关 StringUtils 的详l?API 请参见官方网?span style="font-family: arial,helvetica,sans-serif">: http://commons.apache.org/lang/api/org/apache/commons/lang/StringUtils.html
所有标{:
Tags
fmt:requestEncoding
fmt:setLocale
fmt:timeZone
fmt:setTimeZone
fmt:bundle
fmt:setBundle
fmt:message
fmt:param
fmt:formatNumber
fmt:parseNumber
fmt:formatDate
fmt:parseDate
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
jstl fmt 函数大全
主要功能格式?/p>
日期格式(2008q???2?0?3U?
<fmt:formatDate value="<%=new Date() %>" pattern="yyyyqMM月dd日HH点mm分ssU? />
保留两位数
<fmt:formatNumber value="123.123456789" pattern="0.00"/>
格式数字(45,678.234)
<fmt:formatNumber type="number" value="45678.2345" />
格式癑ֈ?font color="#ff0000">(23%)
<fmt:formatNumber type="percent" value="0.2345" />
其他
<fmt:bundle>Q资源绑定。除了以前提到过的在web.xml中声明以外,q可以利用此标签?/p>
?lt;fmt:bundle basename="message"></fmt:bundle>
<fmt:setLocale>Q设|localeQ主要是用于q种情况Q一个中国h在国外,locale是en_USQ但想用中文昄?/p>
例:<fmt:setLocal value="zh_CN"/>
<fmt:message>Q输出properties文g中的指定内容?/p>
?lt;fmt:message key="user"/>
<fmt:formatNumber type="number">格式化普通数?br /> <fmt:formatNumber type="percent">格式化百分比
三种数字cd参数Qcurrency,number,percent
<fmt:parseNumber var="i" type="number" value="45678.2345" />
<c:out value="${i}" escapeXml="false" /> 分析出数?/p>
<fmt:requestEncoding value="GB18030"/> 格式化文本编?/p>
<fmt:formatDate value="${date}" type="both" timeStyle="long" dateStyle="long" />
type="both" 输入日期也同时输出具体时?br />
timeStyle="long" 旉?#8220;?#8221;格式输出 差别Q下?2?6?9U??14:06:59
dateStyle="long" 日期?#8220;?#8221;格式输出 差别Q?006q????2006-9-7
四种长短参数Qlong,short,medium,full
<fmt:timeZone value="${timezone}"/> 时区偏移Q与上面可配合用:
<fmt:formatDate value="$wmqeeuq" timeZone="${zn}" type="both" />
<fmt:parseDate var="i" type="date" value="2006-12-11" />
<c:out value="${i}" escapeXml="false" /> 分析出时?/p>
获取从某个字W所在位|开始的子串 函数 描述 fn:contains(string, substring) 如果参数string中包含参数substringQ返回true fn:containsIgnoreCase(string, substring) 如果参数string中包含参数substringQ忽略大写Q,q回true fn:endsWith(string, suffix) 如果参数 string 以参数suffixl尾Q返回true fn:escapeXml(string) 有Ҏ意义的XML (和HTML)转换为对应的XML character entity codeQƈq回 fn:indexOf(string, substring) q回参数substring在参数string中第一ơ出现的位置 fn:join(array, separator) 一个给定的数组array用给定的间隔Wseparator串在一Pl成一个新的字W串q返回?/p>
fn:length(item) q回参数item中包含元素的数量。参数Itemcd是数l、collection或者String。如果是Stringcd,q回值是String中的字符数?/p>
fn:replace(string, before, after) q回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方Qƈq回替换后的l果 fn:split(string, separator) q回一个数l,以参数separator 为分割符分割参数stringQ分割后的每一部分是数组的一个元?/p>
fn:startsWith(string, prefix) 如果参数string以参数prefix开_q回true fn:substring(string, begin, end) q回参数string部分字符? 从参数begin开始到参数end位置Q包括end位置的字W?/p>
fn:substringAfter(string, substring) q回参数substring在参数string中后面的那一部分字符?/p>
fn:substringBefore(string, substring) q回参数substring在参数string中前面的那一部分字符?/p>
fn:toLowerCase(string) 参数string所有的字符变ؓ写Qƈ其q回 fn:toUpperCase(string) 参数string所有的字符变ؓ大写Qƈ其q回 fn:trim(string) 去除参数string 首尾的空|q将其返?/p>
函数?/strong>
函数说明
使用举例
fn:contains
判断字符串是否包含另外一个字W串
<c:if test="${fn:contains(name, searchString)}">
fn:containsIgnoreCase
判断字符串是否包含另外一个字W串(大小写无?
<c:if test="${fn:containsIgnoreCase(name, searchString)}">
fn:endsWith
判断字符串是否以另外字符串结?/font>
<c:if test="${fn:endsWith(filename, ".txt")}">
fn:escapeXml
把一些字W{成XML表示Q例?lt;字符应该转ؓ<
${fn:escapeXml(param:info)}
fn:indexOf
子字W串在母字符串中出现的位|?/font>
${fn:indexOf(name, "-")}
fn:join
数l中的数据联合成一个新字符Ԍq用指定字W格开
${fn:join(array, ";")}
fn:length
获取字符串的长度Q或者数l的大小
${fn:length(shoppingCart.products)}
fn:replace
替换字符串中指定的字W?/font>
${fn:replace(text, "-", "")}
fn:split
把字W串按照指定字符切分
${fn:split(customerNames, ";")}
fn:startsWith
判断字符串是否以某个子串开?/font>
<c:if test="${fn:startsWith(product.id, "100-")}">
fn:substring
获取子串
${fn:substring(zip, 6, -1)}
fn:substringAfter
${fn:substringAfter(zip, "-")}
fn:substringBefore
获取从开始到某个字符所在位|的子串
${fn:substringBefore(zip, "-")}
fn:toLowerCase
转ؓ写
${fn.toLowerCase(product.name)}
fn:toUpperCase
转ؓ大写字符
${fn.UpperCase(product.name)}
fn:trim
去除字符串前后的I格
${fn.trim(name)}
]]>