com.centit.support.algorithm.StringRegularOpt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of centit-utils Show documentation
Show all versions of centit-utils Show documentation
java 常用工具类,作为 apache-commons的补充
package com.centit.support.algorithm;
import java.util.Calendar;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
@SuppressWarnings("unused")
public abstract class StringRegularOpt {
final static public String trimString(String szWord)
{
if(szWord==null)
return "";
String strWord = szWord.trim();
int sl = strWord.length();
if(sl >= 2 && (( strWord.charAt(0)=='\"' && strWord.charAt(sl-1)=='\"') ||
( strWord.charAt(0)=='\'' && strWord.charAt(sl-1)=='\'')) ){
if(sl>2)
strWord = strWord.substring(1,sl-1);
else
strWord = "";
}
return strWord;
}
final static public String quotedString(String szWord)
{
if(szWord==null)
return "\"\"";
return "\"" + StringUtils.replace(szWord.trim(), "\"", "'") + "\"";
}
final static public boolean isDigit(String pszNum){
return StringUtils.isNumeric(pszNum);
}
final static public boolean isNumber(String pszNum)
{
String szNum = trimString(pszNum);
int sl = szNum.length();
if (sl<1) return false;
int sp=0;
while(sp='0' && szNum.charAt(sp)<= '9'){
sp++;
continue;
}
if(szNum.charAt(sp) == '.') {
sp++;
break;
}
return false;
}
//if ((sp==sl) && (sl>1) && (szNum.charAt(sp-1)!='.') && (szNum.charAt(0)=='0')) return false;;
while(sp='0' && szNum.charAt(sp)<= '9'){
sp++;
}else
return false;
}
return true;
}
final static public boolean isString(String szWord)
{
if(szWord==null)
return false;
String strWord = szWord.trim();
int sl = strWord.length();
return (sl >= 2 && (( strWord.charAt(0)=='\"' && strWord.charAt(sl-1)=='\"') ||
( strWord.charAt(0)=='\'' && strWord.charAt(sl-1)=='\'')) );
}
/**
* 判断字符串是否为空(null || ""),是:true,否:false
* 和StringUtils中的isBlank等价
* @param str str
* @return boolean 字符串是否为空
*/
public static boolean isNvl(String str) {
return (str == null) || "".equals(str.trim());
}
final static public boolean isTrue(String szCondition )
{
if(szCondition==null)
return false;
String szC = trimString(szCondition);
if("true".equalsIgnoreCase(szC)
||"T".equalsIgnoreCase(szC)
||"Y".equalsIgnoreCase(szC) ) return true;
if(! isNumber(szCondition)) return false;
int bRes = Double.valueOf(szCondition).intValue();
return bRes!=0;
}
final static public boolean isDatetime(String szTime ,Calendar t_time)
{
if(szTime==null)
return false;
//t_time.setTime(time)
int sl = szTime.length();
int sp=0;
int s=0;
String c="";
int y,m,d,h,min,sec;
while(sp '9')) sp++;
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<4)
c += szTime.charAt(sp);
sp++;s++;
continue;
}
//if(szTime[sp] == '-')
sp++;
break;
}//check year
y = Integer.valueOf(c);
if(y < 1970 || y>2038) return false;
while(sp '9')) sp++;
s=0; c="";
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<2)
c += szTime.charAt(sp);
sp++;s++;
continue;
}
//if(szTime.charAt(sp) == '-')
sp++;
break;
}//check month
if(s > 2) return false;
m = Integer.valueOf(c);
if(m<1 || m >12) return false;
while(sp '9')) sp++;
s=0; c="";
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<2) c += szTime.charAt(sp);
sp++;s++;
continue;
}
//if(szTime.charAt(sp) == '-')
sp++;
break;
}//check day
if(s > 2) return false;
d = Integer.valueOf(c);
if(d<1 || d >31) return false;
while(sp '9')) sp++;
s=0; c="";
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<2) c += szTime.charAt(sp);
sp++;s++;
continue;
}
//if(szTime.charAt(sp) == ':')
sp++;
break;
}//check hour
if(s > 2) return false;
h = Integer.valueOf(c);
if(h<0 || h >24) return false;
while(sp '9')) sp++;
s=0; c="";
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<2) c += szTime.charAt(sp);
sp++;s++;
continue;
}
//if(szTime.charAt(sp) == ':')
sp++;
break;
}//check minute
if(s > 2) return false;
min = Integer.valueOf(c);
if(min<0 || min >60) return false;
s=0; c="";
while(sp '9')) sp++;
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<2) c += szTime.charAt(sp);
sp++;s++;
continue;
}
break;
}//check second
if(s > 2) return false;
sec = Integer.valueOf(c);
if(sec<0 || sec >60) return false;
t_time.set(y,m,d,h,min,sec);
return true;
}
final static public boolean isDatetime(String szTime ){
Calendar t_time = Calendar.getInstance();
boolean b = isDatetime(szTime ,t_time);
return b;
}
final static public boolean isDate(String szTime ,Calendar t_time)
{
if(szTime==null)
return false;
//t_time.setTime(time)
int sl = szTime.length();
int sp=0;
int s=0;
String c="";
int y,m,d;
while(sp '9')) sp++;
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<4)
c += szTime.charAt(sp);
sp++;s++;
continue;
}
//if(szTime[sp] == '-')
sp++;
break;
}//check year
y = Integer.valueOf(c);
if(y < 1970 || y>2038) return false;
while(sp '9')) sp++;
s=0; c="";
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<2)
c += szTime.charAt(sp);
sp++;s++;
continue;
}
//if(szTime.charAt(sp) == '-')
sp++;
break;
}//check month
if(s > 2) return false;
m = Integer.valueOf(c);
if(m<1 || m >12) return false;
while(sp '9')) sp++;
s=0; c="";
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<2) c += szTime.charAt(sp);
sp++;s++;
continue;
}
//if(szTime.charAt(sp) == '-')
sp++;
break;
}//check day
if(s > 2) return false;
d = Integer.valueOf(c);
if(d<1 || d >31) return false;
t_time.set(y,m,d,0,0,0);
return true;
}
final static public boolean isDate(String szTime ){
Calendar t_time = Calendar.getInstance();
boolean b = isDate(szTime ,t_time);
return b;
}
final static public boolean isTime(String szTime ,Calendar t_time)
{
if(szTime==null)
return false;
//t_time.setTime(time)
int sl = szTime.length();
int sp=0;
int s=0;
String c="";
int h,min,sec;
while(sp '9')) sp++;
s=0; c="";
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<2) c += szTime.charAt(sp);
sp++;s++;
continue;
}
//if(szTime.charAt(sp) == ':')
sp++;
break;
}//check hour
if(s > 2) return false;
h = Integer.valueOf(c);
if(h<0 || h >24) return false;
while(sp '9')) sp++;
s=0; c="";
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<2) c += szTime.charAt(sp);
sp++;s++;
continue;
}
//if(szTime.charAt(sp) == ':')
sp++;
break;
}//check minute
if(s > 2) return false;
min = Integer.valueOf(c);
if(min<0 || min >60) return false;
s=0; c="";
while(sp '9')) sp++;
while(sp='0' && szTime.charAt(sp)<= '9'){
if(s<2) c += szTime.charAt(sp);
sp++;s++;
continue;
}
break;
}//check second
if(s > 2) return false;
sec = Integer.valueOf(c);
if(sec<0 || sec >60) return false;
t_time.set(2010,10,10,h,min,sec);
return true;
}
final static public boolean isTime(String szTime ){
Calendar t_time = Calendar.getInstance();
boolean b = isTime(szTime ,t_time);
return b;
}
final static public String trimDateString(String szDateStr)
{
if(szDateStr==null)
return null;
int sl = szDateStr.length();
StringBuilder sB = new StringBuilder();
String sTmp2 ="";
int nPart = 0;
boolean bDot = false;
for( int j=0; j< sl; j++){
if (szDateStr.charAt(j) >= '0' && szDateStr.charAt(j) <= '9'){
if (bDot){
if(!"".equals(sTmp2)){
if(nPart>0 && nPart<3)
sB.append('-');
else if(nPart==3)
sB.append(' ');
else if(nPart>3 && nPart<6)
sB.append(':');
nPart ++;
if(sTmp2.length() == 1){
sB.append('0');
}
if(sTmp2.length()>0)
sB.append(sTmp2);
sTmp2 ="";
}
bDot = false;
}
if(nPart>=6)
break;
sTmp2 = sTmp2 + szDateStr.charAt(j);
}else{ //if(! sTmp2.equals(""))
bDot = true;
}
}
if(!"".equals(sTmp2)){
if(nPart>0 && nPart<3)
sB.append('-');
else if(nPart==3)
sB.append(' ');
else if(nPart>3 && nPart<6)
sB.append(':');
if(sTmp2.length() == 1){
sB.append('0');
}
if(sTmp2.length()>0)
sB.append(sTmp2);
}
return sB.toString();
}
final static public String trimDigits(String szDigits)
{
if(szDigits==null)
return null;
int sl = szDigits.length();
StringBuilder sTmp2 = new StringBuilder("");
for( int j=0; j< sl; j++){
if (szDigits.charAt(j) >= '0' && szDigits.charAt(j) <= '9')
sTmp2.append(szDigits.charAt(j));
}
return sTmp2.toString();
}
final static public String trimNumber(String szNumber)
{
if(szNumber==null)
return null;
int sp=0;
int sl = szNumber.length();
StringBuilder sTmp2 = new StringBuilder("");
for( int j=0; j< sl; j++){
if (szNumber.charAt(j) >= '0' && szNumber.charAt(j) <= '9')
sTmp2.append(szNumber.charAt(j));
else if(sp==0 && szNumber.charAt(j) == '.'){
sTmp2.append(szNumber.charAt(j));
sp=1;
}
}
return sTmp2.toString();
}
final static public String sqlMatchToRegex(String sTempl){
return "^"+sTempl.replaceAll("%", "\\\\S*").replaceAll("_", "\\\\S")+"$";
}
/*{
if(szValue==null || szTempl==null)
return false;
int nLV = szValue.length();
int nLT = szTempl.length();
if(nLV == 0){
for(int i=0;i