Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
JSH ERP
Commits
c67ff221
Commit
c67ff221
authored
Dec 11, 2016
by
季圣华
Browse files
no commit message
parent
93f181c8
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/com/jsh/util/132.txt
0 → 100644
View file @
c67ff221
src/com/jsh/util/common/BeanFactoryUtil.java
deleted
100644 → 0
View file @
93f181c8
package
com.jsh.util.common
;
import
java.util.HashMap
;
import
java.util.Map
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.support.ClassPathXmlApplicationContext
;
import
org.springframework.context.support.FileSystemXmlApplicationContext
;
/**
* 获取spring配置中的bean对象,是单例,只会加载一次,请注意使用
* 注意:此工具类默认处理UI组件WEB-INF目录下的applicationContext.xml配置文件,请注意文件 名和路径
* @author jishenghua
* @version V1.0
*/
public
class
BeanFactoryUtil
{
private
static
BeanFactoryUtil
defaultBeanFactory
;
private
ApplicationContext
defaultAC
=
null
;
//private ApplicationContext autoLoadAC = null;
private
static
BeanFactoryUtil
specialBeanFactory
;
private
ApplicationContext
specialAC
=
null
;
private
static
Map
<
String
,
ApplicationContext
>
beanMap
=
new
HashMap
<
String
,
ApplicationContext
>();
//private Logger log = Logger.getLogger(BeanFactoryUtil.class);
/**
* 私有构造函数,默认为UI组件WEB-INF目录下的applicationContext.xml配置文件
*/
private
BeanFactoryUtil
()
{
String
fileUrl
=
PathTool
.
getWebinfPath
();
//这里只对UI组件WEB-INF目录下的applicationContext.xml配置文件
defaultAC
=
new
FileSystemXmlApplicationContext
(
new
String
[]{
fileUrl
+
"spring/basic-applicationContext.xml"
,
fileUrl
+
"spring/dao-applicationContext.xml"
});
}
/**
* 私有构造函数,带有文件的classpath路径,可能是非applicationContext.xml文件
*/
private
BeanFactoryUtil
(
String
fileClassPath
)
{
specialAC
=
new
ClassPathXmlApplicationContext
(
"classpath:"
+
fileClassPath
);
}
/**
* 非web.xml方式加载spring配置文件方式的实体实例获取方式
* @param fileClassPath
* @param beanName
* @return
*/
public
synchronized
static
Object
getBeanByClassPathAndBeanName
(
String
fileClassPath
,
String
beanName
)
{
ApplicationContext
ac
=
beanMap
.
get
(
fileClassPath
);
if
(
null
==
ac
)
{
ac
=
new
ClassPathXmlApplicationContext
(
"classpath:"
+
fileClassPath
);
beanMap
.
put
(
fileClassPath
,
ac
);
}
return
ac
.
getBean
(
beanName
);
}
/**
* 获取类实例
* 默认加载UI组件WEB-INF目录下的applicationContext.xml配置文件
* @return
*
*/
public
synchronized
static
BeanFactoryUtil
getInstance
()
{
if
(
null
==
defaultBeanFactory
)
{
defaultBeanFactory
=
new
BeanFactoryUtil
();
}
return
defaultBeanFactory
;
}
/**
* 获取类实例,这种情况一定是在依赖其他组件时没有在applicationContext.xml加载器spring文件时使用
* 这种情况请少用
* @param fileClassPath
* @return
*/
@Deprecated
public
synchronized
static
BeanFactoryUtil
getInstance
(
String
fileClassPath
)
{
if
(
null
==
specialBeanFactory
)
{
specialBeanFactory
=
new
BeanFactoryUtil
(
fileClassPath
);
}
return
specialBeanFactory
;
}
/**
* 获取UI组件WEB-INF目录下的applicationContext.xml配置文件中配置的bean实例
* @param beanName
* @return
*/
public
Object
getBean
(
String
beanName
)
{
return
defaultAC
.
getBean
(
beanName
);
}
/**
* 获取没有在applicationContext.xml配置文件中引入的spring配置文件,即没有用容器加载过的配置文件
* 这里为特殊情况下使用,不推荐使用
* 推荐在applicationContext.xml配置文件中引入需要使用的spring配置文件,然后使用BeanFactoryUtil.getInstance().getBean("")方法
* @param beanName
* @return
*/
@Deprecated
public
Object
getSpecialBean
(
String
beanName
)
{
return
specialAC
.
getBean
(
beanName
);
}
}
src/com/jsh/util/common/PageUtil.java
deleted
100644 → 0
View file @
93f181c8
package
com.jsh.util.common
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.Hashtable
;
import
java.util.List
;
import
java.util.Map
;
/**
* 分页工具类,实现分页功能
* @author jishenghua
* @version [版本号version01, 2012-1-25]
*/
@SuppressWarnings
(
"serial"
)
public
class
PageUtil
<
E
>
implements
Serializable
{
/**
* 总页数,根据总数和单页显示个数进行计算
*/
private
int
totalPage
=
0
;
/**
* 总个数
*/
private
int
totalCount
=
0
;
/**
* 当前页码
*/
private
int
curPage
=
1
;
/**
* 每页显示个数
*/
private
int
pageSize
=
10
;
/**
* 是否为第一页
*/
private
boolean
isFirstPage
=
false
;
/**
* 是否是最后一页
*/
private
boolean
isLastPage
=
false
;
/**
* 是否有上一页
*/
private
boolean
hasPrevious
=
false
;
/**
* 是否有下一页
*/
private
boolean
hasNext
=
false
;
/**
* 返回页面list数组
*/
private
List
<
E
>
pageList
=
new
ArrayList
<
E
>();
/**
* 页面搜索条件,用map来实现
*/
private
Map
<
String
,
Object
>
advSearch
=
new
Hashtable
<
String
,
Object
>();
public
PageUtil
()
{
}
public
PageUtil
(
int
totalCount
,
int
pageSize
,
int
curPage
,
Map
<
String
,
Object
>
adv
)
{
init
(
totalCount
,
pageSize
,
curPage
,
adv
);
}
/**
* 初始化页面显示参数
* @param totalCount 总数
* @param pageSize 页面显示个数
* @param curPage 当前页面
*/
public
void
init
(
int
totalCount
,
int
pageSize
,
int
curPage
,
Map
<
String
,
Object
>
adv
)
{
this
.
totalCount
=
totalCount
;
this
.
pageSize
=
pageSize
;
this
.
curPage
=
curPage
;
this
.
advSearch
=
adv
;
//计算总页数
if
(
pageSize
!=
0
)
{
this
.
totalPage
=
(
totalCount
+
pageSize
-
1
)/
pageSize
;
}
if
(
curPage
<
1
)
{
this
.
curPage
=
1
;
}
if
(
curPage
>
this
.
totalPage
)
{
this
.
curPage
=
this
.
totalPage
;
}
if
(
curPage
>
0
&&
this
.
totalPage
!=
1
&&
curPage
<
this
.
totalPage
)
{
this
.
hasNext
=
true
;
}
if
(
curPage
>
0
&&
this
.
totalPage
!=
1
&&
curPage
>
1
&&
curPage
<=
this
.
totalPage
)
{
this
.
hasPrevious
=
true
;
}
if
(
curPage
==
1
)
{
this
.
isFirstPage
=
true
;
}
if
(
curPage
==
this
.
totalPage
)
{
this
.
isLastPage
=
true
;
}
}
public
int
getTotalPage
()
{
return
totalPage
;
}
public
void
setTotalPage
(
int
totalPage
)
{
this
.
totalPage
=
totalPage
;
}
public
int
getTotalCount
()
{
return
totalCount
;
}
public
void
setTotalCount
(
int
totalCount
)
{
this
.
totalCount
=
totalCount
;
}
public
int
getCurPage
()
{
return
curPage
;
}
public
void
setCurPage
(
int
curPage
)
{
this
.
curPage
=
curPage
;
}
public
int
getPageSize
()
{
return
pageSize
;
}
public
void
setPageSize
(
int
pageSize
)
{
this
.
pageSize
=
pageSize
;
}
public
boolean
isFirstPage
()
{
return
isFirstPage
;
}
public
void
setFirstPage
(
boolean
isFirstPage
)
{
this
.
isFirstPage
=
isFirstPage
;
}
public
boolean
isLastPage
()
{
return
isLastPage
;
}
public
void
setLastPage
(
boolean
isLastPage
)
{
this
.
isLastPage
=
isLastPage
;
}
public
boolean
isHasPrevious
()
{
return
hasPrevious
;
}
public
void
setHasPrevious
(
boolean
hasPrevious
)
{
this
.
hasPrevious
=
hasPrevious
;
}
public
boolean
isHasNext
()
{
return
hasNext
;
}
public
void
setHasNext
(
boolean
hasNext
)
{
this
.
hasNext
=
hasNext
;
}
public
List
<
E
>
getPageList
()
{
return
pageList
;
}
public
void
setPageList
(
List
<
E
>
pageList
)
{
this
.
pageList
=
pageList
;
}
public
Map
<
String
,
Object
>
getAdvSearch
()
{
return
advSearch
;
}
public
void
setAdvSearch
(
Map
<
String
,
Object
>
advSearch
)
{
this
.
advSearch
=
advSearch
;
}
}
src/com/jsh/util/common/PathTool.java
deleted
100644 → 0
View file @
93f181c8
package
com.jsh.util.common
;
import
java.io.File
;
import
java.net.URISyntaxException
;
import
java.net.URL
;
import
com.jsh.base.Log
;
/**
* 获取应用系统路径
* @author jishenghua
*/
public
class
PathTool
{
/**
* 获取WEB-INF的绝对路径
* @return
*/
public
static
String
getWebinfPath
()
{
String
webinfPath
=
""
;
//获取URL对象
URL
url
=
PathTool
.
class
.
getClassLoader
().
getResource
(
""
);
try
{
//获取路径
webinfPath
=
url
.
toURI
().
getPath
();
//截取路径到WEB-INF结束
// webinfPath = path.substring(0, path.indexOf("/WEB-INF") + 8);
}
catch
(
URISyntaxException
e
)
{
Log
.
errorFileSync
(
">>>>>>>>>>>>>>>>>>>>>>>路径获取异常"
,
e
);
}
return
webinfPath
;
}
/**
* 获取webapp的绝对路径
* @return
*/
public
static
String
getWebappPath
()
{
//先获取工程路径
String
projectPath
=
getProjectPath
();
//获取工程路径的上级路径
File
f
=
new
File
(
projectPath
);
//路径不存在就返回
if
(!
f
.
exists
())
{
return
projectPath
;
}
else
{
//返回webapp路径
return
f
.
getParent
();
}
}
/**
* 获取工程的绝对路径
* @return
*/
public
static
String
getProjectPath
()
{
String
projectPath
=
""
;
//获取URL对象
URL
url
=
PathTool
.
class
.
getClassLoader
().
getResource
(
""
);
String
path
=
null
;
try
{
//获取路径
path
=
url
.
toURI
().
getPath
();
//截取webapp路径
projectPath
=
path
.
substring
(
0
,
path
.
indexOf
(
"/WEB-INF"
));
}
catch
(
URISyntaxException
e
)
{
Log
.
errorFileSync
(
">>>>>>>>>>>>>>>>>>>>>>>路径获取异常"
,
e
);
}
return
projectPath
;
}
}
src/com/jsh/util/common/SearchConditionUtil.java
deleted
100644 → 0
View file @
93f181c8
package
com.jsh.util.common
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Set
;
/**
* 根据搜索条件拼装成查询hql语句
* @author jishenghua
*/
public
class
SearchConditionUtil
{
//拼接字符串的前缀空格字符串
private
static
final
String
emptyPrefix
=
" and "
;
/**
* 根据搜索条件自动拼接成hql搜索语句
* @param condition 搜索条件 规则:
* 1、类型 n--数字 s--字符串
* 2、属性 eq--等于 neq--不等于 like--像'%XX%' llike--左像'%XX' rlike--右像'XX%' in--包含 gt--大于 gteq--大于等于 lt--小于 lteq--小于等于
* order--value desc asc gy-- group by
* 示例:
* Map<String,Object> condition = new HashMap<String,Object>();
* condition.put("supplier_s_like", "aaa");
* condition.put("contacts_s_llike", "186");
* condition.put("contacts_s_rlike", "186");
* condition.put("phonenum_s_eq", null);
* condition.put("email_n_neq", 23);
* condition.put("description_s_order", "desc");
* @return 封装后的字符串
*/
public
static
String
getCondition
(
Map
<
String
,
Object
>
condition
)
{
StringBuffer
hql
=
new
StringBuffer
();
Set
<
String
>
key
=
condition
.
keySet
();
String
groupbyInfo
=
""
;
String
orderInfo
=
""
;
for
(
String
keyInfo:
key
)
{
/*
* 1、数组为三个 第一个为对象实例的字段 第二个为字段类型 第三个为属性
* 2、根据分解后的数组拼接搜索条件
*/
Object
valueInfo
=
condition
.
get
(
keyInfo
);
if
(
null
!=
valueInfo
&&
valueInfo
.
toString
().
length
()>
0
)
{
String
[]
searchCondition
=
keyInfo
.
split
(
"_"
);
if
(
searchCondition
[
1
].
equals
(
"n"
))
hql
.
append
(
emptyPrefix
+
searchCondition
[
0
]
+
getType
(
searchCondition
[
2
])
+
valueInfo
);
else
if
(
searchCondition
[
1
].
equals
(
"s"
))
{
if
(
searchCondition
[
2
].
equals
(
"like"
))
hql
.
append
(
emptyPrefix
+
searchCondition
[
0
]
+
getType
(
searchCondition
[
2
])
+
"'%"
+
valueInfo
+
"%'"
);
else
if
(
searchCondition
[
2
].
equals
(
"llike"
))
hql
.
append
(
emptyPrefix
+
searchCondition
[
0
]
+
getType
(
searchCondition
[
2
])
+
"'%"
+
valueInfo
+
"'"
);
else
if
(
searchCondition
[
2
].
equals
(
"rlike"
))
hql
.
append
(
emptyPrefix
+
searchCondition
[
0
]
+
getType
(
searchCondition
[
2
])
+
"'"
+
valueInfo
+
"%'"
);
else
if
(
searchCondition
[
2
].
equals
(
"in"
))
hql
.
append
(
emptyPrefix
+
searchCondition
[
0
]
+
getType
(
searchCondition
[
2
])
+
"("
+
valueInfo
+
")"
);
else
if
(
searchCondition
[
2
].
equals
(
"order"
))
orderInfo
=
" order by "
+
searchCondition
[
0
]
+
" "
+
valueInfo
;
else
if
(
searchCondition
[
2
].
equals
(
"gb"
))
groupbyInfo
=
" group by "
+
searchCondition
[
0
];
else
hql
.
append
(
emptyPrefix
+
searchCondition
[
0
]
+
getType
(
searchCondition
[
2
])
+
"'"
+
valueInfo
+
"'"
);
}
}
}
return
hql
.
append
(
groupbyInfo
).
append
(
orderInfo
).
toString
();
}
/**
* 获取指定类型的符号
* 属性 eq--等于 neq--不等于 like--像 in--包含 gt--大于 gteq--大于等于 lt--小于 lteq--小于等于 order--value desc asc
* @param type
* @return 类型字符串
*/
private
static
String
getType
(
String
type
)
{
String
typeStr
=
""
;
if
(
type
.
equals
(
"eq"
))
typeStr
=
" = "
;
else
if
(
type
.
equals
(
"neq"
))
typeStr
=
" != "
;
else
if
(
type
.
equals
(
"like"
))
typeStr
=
" like "
;
else
if
(
type
.
equals
(
"llike"
))
typeStr
=
" like "
;
else
if
(
type
.
equals
(
"rlike"
))
typeStr
=
" like "
;
else
if
(
type
.
equals
(
"in"
))
typeStr
=
" in "
;
else
if
(
type
.
equals
(
"gt"
))
typeStr
=
" > "
;
else
if
(
type
.
equals
(
"gteq"
))
typeStr
=
" >= "
;
else
if
(
type
.
equals
(
"lt"
))
typeStr
=
" < "
;
else
if
(
type
.
equals
(
"lteq"
))
typeStr
=
" <= "
;
else
if
(
type
.
equals
(
"order"
))
typeStr
=
" order "
;
else
if
(
type
.
equals
(
"gy"
))
typeStr
=
" group by "
;
else
typeStr
=
"unknown"
;
return
typeStr
;
}
public
static
void
main
(
String
[]
args
)
{
/**
* 拼接搜索条件
*/
Map
<
String
,
Object
>
condition
=
new
HashMap
<
String
,
Object
>();
condition
.
put
(
"supplier_s_like"
,
"aaa"
);
condition
.
put
(
"contacts_s_llike"
,
"186"
);
condition
.
put
(
"contacts_s_rlike"
,
"186"
);
condition
.
put
(
"phonenum_s_eq"
,
null
);
condition
.
put
(
"email_n_neq"
,
23
);
condition
.
put
(
"description_s_order"
,
"desc"
);
condition
.
put
(
"description_s_gb"
,
"aaa"
);
//获取搜索条件拼接
System
.
out
.
println
(
getCondition
(
condition
));
}
}
src/com/jsh/util/common/Tools.java
deleted
100644 → 0
View file @
93f181c8
package
com.jsh.util.common
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
import
java.net.InetAddress
;
import
java.net.URLEncoder
;
import
java.net.UnknownHostException
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.Locale
;
import
java.util.UUID
;
import
java.util.regex.Pattern
;
import
java.math.BigInteger
;
public
class
Tools
{
/**
* 获得32位唯一序列号
* @return 32为ID字符串
*/
public
static
String
getUUID_32
()
{
return
UUID
.
randomUUID
().
toString
().
replaceAll
(
"-"
,
""
);
}
/**
* 获得当天时间,格式为yyyy-MM-dd
* @return 格式化后的日期格式
*/
public
static
String
getNow
()
{
return
new
SimpleDateFormat
(
"yyyy-MM-dd"
).
format
(
new
Date
());
}
/**
* 获取当前月 yyyy-MM
* @return
*/
public
static
String
getCurrentMonth
()
{
return
new
SimpleDateFormat
(
"yyyy-MM"
).
format
(
new
Date
());
}
/**
* 获取指定日期格式 yyyy-MM
* @return
*/
public
static
String
getCurrentMonth
(
Date
date
)
{
return
new
SimpleDateFormat
(
"yyyy-MM-dd"
).
format
(
date
);
}
/**
* 获得当天时间,格式为yyyyMMddHHmmss
* @return 格式化后的日期格式
*/
public
static
String
getNow2
(
Date
date
)
{
return
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
date
);
}
/**
* 获得当天时间,格式为yyyy-MM-dd HH:mm:ss
* @return 格式化后的日期格式
*/
public
static
String
getNow3
()
{
return
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
());
}
/**
* 获得指定时间,格式为yyyy-MM-dd HH:mm:ss
* @return 格式化后的日期格式
*/
public
static
String
getCenternTime
(
Date
date
)
{
return
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
date
);
}
/**
* 获得指定时间,格式为mm:ss
* @return 格式化后的日期格式
*/
public
static
String
getTimeInfo
(
Date
date
)
{
return
new
SimpleDateFormat
(
"mm:ss"
).
format
(
date
);
}
/**
* 获取当前日期是星期几
* return 星期几
*/
public
static
String
getWeekDay
()
{
Calendar
c
=
Calendar
.
getInstance
(
Locale
.
CHINA
);
c
.
setTime
(
new
Date
());
int
day
=
c
.
get
(
Calendar
.
DAY_OF_WEEK
);
String
weekDay
=
""
;
switch
(
day
)
{
case
1
:
weekDay
=
"星期日"
;
break
;
case
2
:
weekDay
=
"星期一"
;
break
;
case
3
:
weekDay
=
"星期二"
;
break
;
case
4
:
weekDay
=
"星期三"
;
break
;
case
5
:
weekDay
=
"星期四"
;
break
;
case
6
:
weekDay
=
"星期五"
;
break
;
case
7
:
weekDay
=
"星期六"
;
break
;
default
:
break
;
}
return
weekDay
;
}
/**
* 判断字符串是否全部为数字
* @param accountWaste
* @return boolean值
*/
public
static
boolean
checkStrIsNum
(
String
checkStr
)
{
if
(
checkStr
==
null
||
checkStr
.
length
()
==
0
)
return
false
;
return
Pattern
.
compile
(
"^[0-9]*.{1}[0-9]*$"
).
matcher
(
checkStr
).
matches
();
// return Pattern.compile(":^[0-9]+(.[0-9])*$").matcher(checkStr).matches();
}
/**
* 获得前一天的时间
* @return 前一天日期
*/
public
static
String
getPreviousDate
()
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
add
(
Calendar
.
DATE
,
-
1
);
return
new
SimpleDateFormat
(
"yyyy-MM"
).
format
(
cal
.
getTime
());
}
/**
* 截取字符串长度
* @param beforeStr
* @param cutLeng
* @return 截取后的字符串
*/
public
static
String
subStr
(
String
beforeStr
,
int
cutLeng
){
if
(
beforeStr
.
length
()>
cutLeng
)
return
beforeStr
.
substring
(
0
,
cutLeng
)+
"..."
;
return
beforeStr
;
}
/**
* 生成随机字符串,字母和数字混合
* @return 组合后的字符串 ^[0-9a-zA-Z]
*/
public
static
String
getRandomChar
(){
//生成一个0、1、2的随机数字
int
rand
=
(
int
)
Math
.
round
(
Math
.
random
()
*
1
);
long
itmp
=
0
;
char
ctmp
=
'\u0000'
;
switch
(
rand
)
{
//生成大写字母 + 1000以内数字
case
1
:
itmp
=
Math
.
round
(
Math
.
random
()
*
25
+
65
);
ctmp
=
(
char
)
itmp
;
return
String
.
valueOf
(
ctmp
)
+
(
int
)
Math
.
random
()*
1000
;
//生成小写字母
case
2
:
itmp
=
Math
.
round
(
Math
.
random
()
*
25
+
97
);
ctmp
=
(
char
)
itmp
;
return
String
.
valueOf
(
ctmp
)+
(
int
)
Math
.
random
()*
1000
;
//生成数字
default
:
itmp
=
Math
.
round
(
Math
.
random
()
*
1000
);
return
itmp
+
""
;
}
}
/**
* 判断首字母以数字开头,字符串包括数字、字母%以及空格
* @param str 检查字符串
* @return 是否以数字开头
*/
public
static
boolean
CheckIsStartWithNum
(
String
str
)
{
return
Pattern
.
compile
(
"^[0-9][a-zA-Z0-9%,\\s]*$"
).
matcher
(
str
).
matches
();
}
/**
* 判断首字母以","开头,字符串包括数字、字母%以及空格
* @param str 检查字符串
* @return 是否以数字开头
*/
public
static
boolean
CheckIsStartWithSpec
(
String
str
)
{
return
Pattern
.
compile
(
"^[,][a-zA-Z0-9%,\\s]*$"
).
matcher
(
str
).
matches
();
}
/**
* 字符转码
* @param aValue
* @return
* @see 转码后的字符串
*/
public
static
String
encodeValue
(
String
aValue
)
{
if
(
aValue
.
trim
().
length
()
==
0
)
{
return
""
;
}
String
valueAfterTransCode
=
null
;
try
{
valueAfterTransCode
=
URLEncoder
.
encode
(
aValue
,
"UTF-8"
);
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
getMessage
();
}
return
valueAfterTransCode
;
}
/**
* 去除str中的'
* @param str
* @return 除去'后的字符串
* @see [类、类#方法、类#成员]
*/
public
static
String
afterDealStr
(
String
str
)
{
return
str
.
replace
(
"'"
,
""
);
}
/**
* 获取用户IP地址
* @return 用户IP
* @see [类、类#方法、类#成员]
*/
public
static
String
getCurrentUserIP
()
{
try
{
return
InetAddress
.
getLocalHost
().
getHostAddress
();
}
catch
(
UnknownHostException
e
)
{
e
.
printStackTrace
();
return
"127.0.0.1"
;
}
}
/**
* 转化前台批量传入的ID值
* @param data
* @return 转化后的ID值数组
*/
public
static
int
[]
changeDataForm
(
String
data
)
{
String
[]
dataStr
=
data
.
split
(
","
);
int
[]
dataInt
=
new
int
[
dataStr
.
length
];
for
(
int
i
=
0
;
i
<
dataStr
.
length
;
i
++)
dataInt
[
i
]
=
Integer
.
parseInt
(
dataStr
[
i
]);
return
dataInt
;
}
/**
* 解决导出文件中文乱码问题firefox和ie下中文乱码
*/
public
static
String
changeUnicode
(
String
fileName
,
String
browserType
)
{
String
returnFileName
=
""
;
try
{
if
(
browserType
.
equalsIgnoreCase
(
"MSIE"
))
{
returnFileName
=
URLEncoder
.
encode
(
fileName
,
"ISO8859-1"
);
returnFileName
=
returnFileName
.
replace
(
" "
,
"%20"
);
if
(
returnFileName
.
length
()
>
150
)
{
returnFileName
=
new
String
(
fileName
.
getBytes
(
"GB2312"
),
"ISO8859-1"
);
returnFileName
=
returnFileName
.
replace
(
" "
,
"%20"
);
}
}
else
if
(
browserType
.
equalsIgnoreCase
(
"Firefox"
))
{
returnFileName
=
new
String
(
fileName
.
getBytes
(
"ISO8859-1"
),
"ISO8859-1"
);
returnFileName
=
returnFileName
.
replace
(
" "
,
"%20"
);
}
else
{
returnFileName
=
URLEncoder
.
encode
(
fileName
,
"ISO8859-1"
);
returnFileName
=
returnFileName
.
replace
(
" "
,
"%20"
);
if
(
returnFileName
.
length
()
>
150
)
{
returnFileName
=
new
String
(
returnFileName
.
getBytes
(
"GB2312"
),
"ISO8859-1"
);
returnFileName
=
returnFileName
.
replace
(
" "
,
"%20"
);
}
}
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
return
returnFileName
;
}
/**
* 写理财日志内容转化特殊字符
* @param str 需要转化的字符
* @return 转化后的字符
*/
public
static
String
htmlspecialchars
(
String
str
)
{
str
=
str
.
replaceAll
(
"&"
,
"&"
);
str
=
str
.
replaceAll
(
"<"
,
"<"
);
str
=
str
.
replaceAll
(
">"
,
">"
);
str
=
str
.
replaceAll
(
"\""
,
"""
);
return
str
;
}
/**
* 根据消费日期获取消费月
* @param consumeDate 消费日期
* @return 返回消费月信息
*/
public
static
String
getConsumeMonth
(
String
consumeDate
)
{
return
consumeDate
.
substring
(
0
,
7
);
}
/**
* 获取当前日期的前XX个月
* @param 之前的第几个月
* @return 前XX个月字符串
*/
public
static
String
getBeforeMonth
(
int
beforeMonth
)
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
add
(
Calendar
.
MONTH
,
-
beforeMonth
);
return
new
SimpleDateFormat
(
"yyyy-MM"
).
format
(
c
.
getTime
());
}
/**
* 获取email用户姓名
* @param args
*/
public
static
String
getEmailUserName
(
String
emailAddress
)
{
return
emailAddress
.
substring
(
0
,
emailAddress
.
lastIndexOf
(
"@"
));
}
/**
* 获取中文编码,邮件附件乱码问题解决
* @param str
* @return
*/
public
static
String
getChineseString
(
String
emailAttchmentTitle
)
{
if
(
emailAttchmentTitle
!=
null
&&!
emailAttchmentTitle
.
equals
(
""
))
{
try
{
return
new
String
(
emailAttchmentTitle
.
getBytes
(),
"ISO-8859-1"
);
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
}
return
emailAttchmentTitle
;
}
/**
* 判断userTel是否合法,userTel只能是数字
* @param userTel
* @return true 合法 false不合法
*/
public
static
boolean
isTelNumber
(
String
userTel
)
{
String
reg_phone
=
"^(\\(\\d{3,4}\\)|\\d{3,4}-)?\\d{7,8}$"
;
String
reg_tel
=
"^(1[0-9][0-9]|1[0-9][0|3|6|8|9])\\d{8}$"
;
boolean
b_phpne
=
Pattern
.
compile
(
reg_phone
).
matcher
(
userTel
).
matches
();
boolean
b_tel
=
Pattern
.
compile
(
reg_tel
).
matcher
(
userTel
).
matches
();
return
(
b_phpne
||
b_tel
);
}
/**
* 模糊判断电话号码是否合法,只能是数字
* @param macAddress
* @return
*/
public
static
boolean
isTelNumberBySlur
(
String
userTel
)
{
return
Pattern
.
compile
(
"^([\\s0-9]{0,12}$)"
).
matcher
(
userTel
).
matches
();
}
/**
* 获取当前时间的字符串类型
* @return 处理后的字符串类型
*/
public
static
String
getNowTime
()
{
return
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
Calendar
.
getInstance
().
getTime
());
}
/**
* 开打指定文件
* @param filePath 文件的绝对路径
*/
public
static
void
openFile
(
String
filePath
)
{
String
viewFilePath
=
filePath
.
replace
(
"\\"
,
"/"
);
// Runtime.getRuntime().exec("cmd /c start "+filePath);
// 解决路径中带空格问题
Runtime
r
=
Runtime
.
getRuntime
();
String
[]
cmdArray
=
new
String
[]
{
"cmd.exe"
,
"/c"
,
viewFilePath
};
try
{
r
.
exec
(
cmdArray
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 判断字符串中是否含有中文
* @author jishenghua
* @param str
* @return
*/
public
static
boolean
isContainsChinese
(
String
str
)
{
return
Pattern
.
compile
(
"[\u4e00-\u9fa5]"
).
matcher
(
str
).
matches
();
}
/**
* 过滤html文件中的文本
* @param content
* @return过滤后的文本
*/
public
static
String
filterText
(
String
content
)
{
return
content
.
replace
(
"/<(?:.|\\s)*?>/g"
,
""
);
}
/**
* 去掉字符串中所有符号,不论是全角,还是半角的,或是货币符号或者空格等
* @author jishenghua
* @param s
* @return
*
*/
public
static
String
removeSymbolForString
(
String
s
)
{
StringBuffer
buffer
=
new
StringBuffer
();
char
[]
chars
=
s
.
toCharArray
();
for
(
int
i
=
0
;
i
<
chars
.
length
;
i
++)
{
if
((
chars
[
i
]
>=
19968
&&
chars
[
i
]
<=
40869
)
||
(
chars
[
i
]
>=
97
&&
chars
[
i
]
<=
122
)
||
(
chars
[
i
]
>=
65
&&
chars
[
i
]
<=
90
))
{
buffer
.
append
(
chars
[
i
]);
}
}
return
buffer
.
toString
();
}
/**
* 获取一个字符串的MD5
* @param msg
* @return 加密后的MD5字符串
* @throws NoSuchAlgorithmException
*/
public
static
String
md5Encryp
(
String
msg
)
throws
NoSuchAlgorithmException
{
// 生成一个MD5加密计算摘要
MessageDigest
md
=
MessageDigest
.
getInstance
(
"MD5"
);
// 计算md5函数
md
.
update
(
msg
.
getBytes
());
return
new
BigInteger
(
1
,
md
.
digest
()).
toString
(
16
);
}
/**
* 处理字符串null值
* @param beforeStr 处理前字符串
* @return 处理后的字符串
*/
public
static
String
dealNullStr
(
String
beforeStr
)
{
if
(
null
==
beforeStr
||
beforeStr
.
length
()==
0
)
return
""
;
return
beforeStr
;
}
/**
* 使用参数Format将字符串转为Date
* @author jishenghua
* @param strDate
* @param pattern
* @return
* @throws ParseException
*
*/
public
static
Date
parse
(
String
strDate
,
String
pattern
)
throws
ParseException
{
return
new
SimpleDateFormat
(
pattern
).
parse
(
strDate
);
}
// /**
// * 过滤html文件中的图片文件
// * @param content
// * @return
// */
// public static String filterImg(String content)
// {
// return content.matches("/<img(?:.|\\s)*?>/g");
// }
public
static
void
main
(
String
[]
args
)
{
String
aa
=
"的付的反对法的发的说法"
;
char
[]
bb
=
aa
.
toCharArray
();
for
(
char
c
:
bb
)
{
System
.
out
.
println
(
c
);
}
System
.
out
.
println
(
getBeforeMonth
(
1
));
try
{
System
.
out
.
println
(
md5Encryp
(
"guest"
));
System
.
out
.
println
(
md5Encryp
(
"admin"
));
}
catch
(
NoSuchAlgorithmException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
String
value
=
"2333"
;
System
.
out
.
println
(
checkStrIsNum
(
value
));
for
(
int
i
=
0
;
i
<
100
;
i
++)
{
System
.
out
.
print
(
getRandomChar
()
+
" || "
);
}
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment