细心!用心!耐心!
吾非文人,乃市井一俗人也,读百卷书,跨江河千里,故申城一游; 一两滴辛酸,三四年学业,五六点粗墨,七八笔买卖,九十道人情。
BlogJava
联系
聚合
管理
1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(5)
给我留言
查看公开留言
查看私人留言
随笔分类
网关编程
设计模式
文章分类
AJAX技术(13)
ANT的使用(3)
Behavioral 模式 (11)
core java中的一些数据结构的处理(15)
Creational 模式(7)
I/O机制的编程
JPA(6)
liferay portal(19)
Oracle BPM专题(1)
SSH框架编程(1)
Structural 模式 (10)
webservice编程
事务编程(2)
任务调度器(1)
多執行緒模式(8)
多线程编程(5)
如何debug(2)
常用javascript(7)
数据库编程(5)
服务器编程(5)
网关编程(6)
网络协议编程(2)
面向对象的一些难点问题
项目框架的设想(21)
文章档案
2014年7月 (5)
2014年1月 (1)
2012年10月 (3)
2012年9月 (4)
2012年6月 (7)
2008年11月 (8)
2008年5月 (1)
2007年11月 (2)
2007年10月 (2)
2007年7月 (7)
2007年5月 (42)
2007年4月 (58)
2007年3月 (9)
2007年2月 (8)
2007年1月 (7)
收藏夹
Doug Lea关于util.concurrent并发工具包的讲座(3)
搜索
最新评论
1. re: createNativeQuery原生-命名查询[未登录]
query.getResultList() 这个返回的值 用什么实体 类 接受 呢?
--111
2. re: JPA本地查询(Native Query)(二)[未登录]
fdfdf
--abc
3. re: JPA EntityManager详解(一)
版主,如果利用entityManager进行查询,如何在sql里边传参,防注入的那种
--谢谢
4. re: dwr简介--一个例子(一)
天通苑
--67
5. re: 图片自动生成器
wq ery 2we wei 3ik w3
-- kplie
校验工具类
1
package
com.stt.dosp.datacollect.util;
2
3
//
import java.io.BufferedReader;
4
//
import java.io.File;
5
//
import java.io.FileInputStream;
6
//
import java.io.IOException;
7
//
import java.io.InputStreamReader;
8
import
java.text.SimpleDateFormat;
9
import
java.util.ArrayList;
10
import
java.util.Calendar;
11
import
java.util.Date;
12
import
java.util.GregorianCalendar;
13
14
import
org.apache.log4j.Logger;
15
16
import
com.stt.dosp.datacollect.pojo.Cdr;
17
18
/** */
/**
19
* 校验工具类
20
*
@author
zhangjp
21
*
@version
1.0
22
*/
23
public
class
DataUtil
{
24
private
static
Logger log
=
Logger.getLogger(DataUtil.
class
);
25
private
static
SimpleDateFormat sdf
=
new
SimpleDateFormat(
"
yyyyMMddHHmmss
"
);
26
27
/** */
/**
28
* 判断是否是数字
29
*/
30
public
static
boolean
isNum(String str)
{
31
if
( str.equalsIgnoreCase(
"
NULL
"
)
||
str.trim().length()
==
0
)
{
32
return
true
;
33
}
34
boolean
retVal
=
false
;
35
36
try
{
37
Long.parseLong(str.trim());
38
retVal
=
true
;
39
}
catch
(Exception e)
{
40
return
retVal;
41
}
42
43
return
retVal;
44
}
45
/** */
/**
46
* 判断是否是浮点数
47
*
*/
48
public
static
boolean
isDouble(String str)
{
49
if
( str.trim().equalsIgnoreCase(
"
NULL
"
)
||
str.trim().length()
==
0
)
{
50
return
true
;
51
}
52
boolean
retVal
=
false
;
53
54
try
{
55
Double.parseDouble(str.trim());
56
retVal
=
true
;
57
}
catch
(Exception e)
{
58
return
retVal;
59
}
60
61
return
retVal;
62
}
63
64
/** */
/**
65
* 判断浮点类型
66
*
*/
67
public
static
boolean
isDoubleOK(String str,
int
length,
int
point)
{
68
if
(str
==
null
||
str.trim().equalsIgnoreCase(
"
NULL
"
))
{
69
return
true
;
70
}
71
if
(isNum(str))
{
72
return
str.trim().length()
<=
(length
-
point);
73
}
74
if
(isDouble(str)
&&
(str.trim().length()
<=
(length
+
1
)))
{
75
String ss
=
str.substring(
0
,str.indexOf(
"
.
"
));
76
return
ss.trim().length()
<=
(length
-
point);
77
}
78
return
false
;
79
}
80
81
/** */
/**
82
* 判断数字
83
*/
84
public
static
boolean
isLengthOk(String str,
int
len)
{
85
if
(str
==
null
)
{
86
return
false
;
87
}
88
return
(str.trim().getBytes().length
==
len);
89
90
}
91
92
/** */
/**
93
* 判断数字
94
* len代表小于等于
95
*/
96
public
static
boolean
isSmallLengthRang(String str,
int
len)
{
97
98
if
(str
==
null
||
str.trim().equalsIgnoreCase(
"
NULL
"
))
{
99
return
true
;
100
}
101
102
if
(isNum(str))
{
103
//
return (str.trim().getBytes().length <= len);
104
return
(str.getBytes().length
<=
len);
105
}
106
if
(str.split(
"
.
"
).length
==
2
)
{
107
if
(isDouble(str))
{
108
return
(str.trim().getBytes().length
<=
len
+
1
);
109
}
110
}
111
//
return (str.trim().getBytes().length <= len);
112
return
(str.getBytes().length
<=
len);
113
}
114
/** */
/**
115
* 判断数字
116
* len代表大于等于
117
*/
118
public
static
boolean
isBigLengthRang(String str,
int
len)
{
119
if
(str
==
null
)
{
120
return
false
;
121
}
122
123
return
(str.trim().getBytes().length
>=
len);
124
125
}
126
127
/** */
/**
128
* 判断是否日期
129
*/
130
public
static
boolean
isDate(String dateStr, String formatter)
{
131
132
if
( dateStr.trim().equalsIgnoreCase(
"
NULL
"
)
||
dateStr.trim().length()
==
0
||
dateStr
==
null
)
{
133
return
true
;
134
}
135
136
SimpleDateFormat sdF
=
null
;
137
sdF
=
new
SimpleDateFormat(formatter);
138
try
{
139
sdF.parse(dateStr);
140
}
catch
(Exception e)
{
141
return
false
;
142
}
143
144
long
year
=
0
;
145
long
month
=
0
;
146
long
day
=
0
;
147
long
hour
=
0
;
148
long
miniutes
=
0
;
149
long
seconds
=
0
;
150
151
if
(formatter.equals(
"
yyyyMM
"
))
{
152
try
{
153
year
=
Long.parseLong(dateStr.substring(
0
,
4
));
154
month
=
Long.parseLong(dateStr.substring(
4
,
6
));
155
}
catch
(Exception e)
{
156
return
false
;
157
}
158
159
if
(year
>=
1970
&&
month
>=
1
&&
month
<=
12
)
{
160
return
true
;
161
}
162
}
163
164
if
(formatter.equals(
"
yyyyMMdd
"
))
{
165
try
{
166
year
=
Long.parseLong(dateStr.substring(
0
,
4
));
167
month
=
Long.parseLong(dateStr.substring(
4
,
6
));
168
day
=
Long.parseLong(dateStr.substring(
6
,
8
));
169
}
catch
(Exception e)
{
170
return
false
;
171
}
172
173
if
(year
>=
1970
&&
month
>=
1
&&
month
<=
12
&&
day
>=
1
&&
day
<=
31
)
{
174
if
(month
==
1
)
{
175
return
day
<=
31
;
176
}
177
178
if
(month
==
2
)
{
179
if
(((year
%
4
==
0
)
&&
(year
%
100
!=
0
))
||
(year
%
400
==
0
))
{
180
return
day
<=
28
;
181
}
else
return
day
<=
29
;
182
183
}
184
185
if
(month
==
3
)
{
186
return
day
<=
31
;
187
}
188
189
if
(month
==
4
)
{
190
return
day
<=
30
;
191
}
192
193
if
(month
==
5
)
{
194
return
day
<=
31
;
195
}
196
197
if
(month
==
6
)
{
198
return
day
<=
30
;
199
}
200
201
if
(month
==
7
)
{
202
return
day
<=
31
;
203
}
204
205
if
(month
==
8
)
{
206
return
day
<=
31
;
207
}
208
209
if
(month
==
9
)
{
210
return
day
<=
30
;
211
}
212
213
if
(month
==
10
)
{
214
return
day
<=
31
;
215
}
216
217
if
(month
==
11
)
{
218
return
day
<=
30
;
219
}
220
221
if
(month
==
12
)
{
222
return
day
<=
31
;
223
}
224
}
225
226
return
false
;
227
228
}
229
230
231
if
(formatter.equals(
"
yyyyMMddHHmmss
"
)
||
formatter.equals(
"
yyyy-MM-dd HH:mm:ss
"
))
{
232
try
{
233
if
(formatter.equals(
"
yyyyMMddHHmmss
"
))
{
234
year
=
Long.parseLong(dateStr.substring(
0
,
4
));
235
month
=
Long.parseLong(dateStr.substring(
4
,
6
));
236
day
=
Long.parseLong(dateStr.substring(
6
,
8
));
237
hour
=
Long.parseLong(dateStr.substring(
8
,
10
));
238
miniutes
=
Long.parseLong(dateStr.substring(
10
,
12
));
239
seconds
=
Long.parseLong(dateStr.substring(
12
,
14
));
240
}
else
{
241
year
=
Long.parseLong(dateStr.substring(
0
,
4
));
242
month
=
Long.parseLong(dateStr.substring(
5
,
7
));
243
day
=
Long.parseLong(dateStr.substring(
8
,
10
));
244
try
{
245
hour
=
Long.parseLong(dateStr.substring(
11
,
13
));
246
miniutes
=
Long.parseLong(dateStr.substring(
14
,
16
));
247
seconds
=
Long.parseLong(dateStr.substring(
17
,
19
));
248
}
catch
(Exception e)
{
249
hour
=
Long.parseLong(dateStr.substring(
11
,
12
));
250
miniutes
=
Long.parseLong(dateStr.substring(
13
,
15
));
251
seconds
=
Long.parseLong(dateStr.substring(
16
,
18
));
252
}
253
254
}
255
256
}
catch
(Exception e)
{
257
return
false
;
258
}
259
260
if
(year
>=
1970
&&
month
>=
1
&&
month
<=
12
&&
day
>=
1
&&
day
<=
31
&&
hour
>=
0
&&
hour
<=
24
&&
miniutes
>=
0
&&
miniutes
<=
59
&&
seconds
>=
0
&&
seconds
<=
59
)
{
261
if
(month
==
1
)
{
262
return
day
<=
31
;
263
}
264
265
if
(month
==
2
)
{
266
if
(((year
%
4
==
0
)
&&
(year
%
100
!=
0
))
||
(year
%
400
==
0
))
{
267
return
day
<=
28
;
268
}
else
return
day
<=
29
;
269
270
}
271
272
if
(month
==
3
)
{
273
return
day
<=
31
;
274
}
275
276
if
(month
==
4
)
{
277
return
day
<=
30
;
278
}
279
280
if
(month
==
5
)
{
281
return
day
<=
31
;
282
}
283
284
if
(month
==
6
)
{
285
return
day
<=
30
;
286
}
287
288
if
(month
==
7
)
{
289
return
day
<=
31
;
290
}
291
292
if
(month
==
8
)
{
293
return
day
<=
31
;
294
}
295
296
if
(month
==
9
)
{
297
return
day
<=
30
;
298
}
299
300
if
(month
==
10
)
{
301
return
day
<=
31
;
302
}
303
304
if
(month
==
11
)
{
305
return
day
<=
30
;
306
}
307
308
if
(month
==
12
)
{
309
return
day
<=
31
;
310
}
311
}
312
return
false
;
313
}
314
return
false
;
315
316
317
318
}
319
320
/** */
/**
321
* 判断是否是手机号码
322
*
*/
323
public
static
boolean
isMobile(String mobileStr)
{
324
if
(mobileStr
==
null
)
{
325
return
false
;
326
}
327
String str
=
mobileStr.trim();
328
if
(isNum(str)
&&
isLengthOk(str,
11
))
{
329
if
(str.startsWith(
"
13
"
)
||
str.startsWith(
"
159
"
))
{
330
return
true
;
331
}
332
333
}
334
return
false
;
335
336
}
337
338
/** */
/**
339
* 判断空值
340
*
*/
341
public
static
boolean
isNotNull(String str,
int
len)
{
342
if
(str.trim().length()
==
0
||
str.trim().equalsIgnoreCase(
"
NULL
"
))
{
343
return
false
;
344
}
345
346
if
(isNum(str))
{
347
return
(str.trim().getBytes().length
<=
len);
348
}
349
if
(isDouble(str))
{
350
return
(str.trim().getBytes().length
<=
len
+
1
);
351
}
352
return
(str.trim().getBytes().length
<=
len);
353
}
354
355
356
/** */
/**
357
* 分割字符串
358
*
*/
359
public
static
Cdr splitString(String lineString)
{
360
Cdr cdr
=
new
Cdr();
361
Calendar cal
=
GregorianCalendar.getInstance();
362
try
{
363
ArrayList list
=
new
ArrayList();
364
StringBuffer sb
=
new
StringBuffer();
365
String[] temp_columnArray
=
null
;
366
String[] columnArray
=
null
;
367
//
字符串如果含有空格,则空格为“半角状态下的空格”,如果为全角状态下,则空格长度为1
368
lineString
=
lineString.trim();
369
char
[] chars
=
lineString.toCharArray();
370
int
length
=
chars.length;
371
for
(
int
i
=
0
; i
<
chars.length; i
++
)
{
372
if
(String.valueOf(chars[i]).trim().length()
<
1
)
{
373
length
--
;
374
}
else
{
375
sb.append(String.valueOf(chars[i]));
376
}
377
}
378
String str
=
sb.toString();
379
temp_columnArray
=
str.split(
"
['\
"'
]");
380
for
(
int
i
=
0
; i
<
temp_columnArray.length; i
++
)
{
381
if
(temp_columnArray[i].trim().length()
>=
1
)
{
382
list.add(temp_columnArray[i]);
383
}
384
}
385
columnArray
=
(String[])list.toArray(
new
String[(temp_columnArray.length
/
2
)
-
1
]);
386
for
(
int
i
=
0
; i
<
columnArray.length; i
++
)
{
387
if
(i
==
0
)
{
388
cdr.setSmSequenceId(Long.parseLong(columnArray[i].trim()));
389
}
else
if
(i
==
1
)
{
390
cdr.setBillType(Integer.parseInt(columnArray[i].trim()));
391
}
else
if
(i
==
2
)
{
392
cdr.setUserType(Integer.parseInt(columnArray[i].trim()));
393
}
else
if
(i
==
3
)
{
394
cdr.setPayer(Long.parseLong(columnArray[i].trim()));
395
}
else
if
(i
==
4
)
{
396
cdr.setSpId(Long.parseLong(columnArray[i].trim()));
397
}
else
if
(i
==
5
)
{
398
cdr.setReceiver(Long.parseLong(columnArray[i].trim()));
399
}
else
if
(i
==
6
)
{
400
cdr.setServiceId((columnArray[i].trim()));
401
}
else
if
(i
==
8
)
{
402
cdr.setPayerType(Integer.parseInt(columnArray[i].trim()));
403
}
else
if
(i
==
9
)
{
404
cdr.setRatedPrice(Integer.parseInt(columnArray[i].trim()));
405
}
else
if
(i
==
10
)
{
406
cdr.setMonthlyPrice(Integer.parseInt(columnArray[i].trim()));
407
}
else
if
(i
==
11
)
{
408
cdr.setSendingStatus(Integer.parseInt(columnArray[i].trim()));
409
}
else
if
(i
==
12
)
{
410
cdr.setMessagePriority(Integer.parseInt(columnArray[i].trim()));
411
}
else
if
(i
==
13
)
{
412
cdr.setMessageLength(Integer.parseInt(columnArray[i].trim()));
413
}
else
if
(i
==
14
)
{
414
cdr.setProvinceOfReceiver(columnArray[i].trim());
415
}
else
if
(i
==
15
)
{
416
if
(columnArray.length
==
21
)
{
417
cdr.setLocalSmgId(columnArray[i]);
418
}
else
{
419
cdr.setLocalSmgId(
""
);
420
}
421
}
else
if
(i
==
16
)
{
422
//
if(columnArray.length == 21){
423
//
cdr.setForwardInSmgId(columnArray[i-1].trim());
424
//
cdr.setForwardOutSmgId(columnArray[i-1].trim());
425
//
}else{
426
//
cdr.setForwardInSmgId(columnArray[i].trim());
427
//
cdr.setForwardOutSmgId(columnArray[i].trim());
428
//
}
429
cdr.setForwardInSmgId(
""
);
430
cdr.setForwardOutSmgId(
""
);
431
}
else
if
(i
==
17
)
{
432
if
(columnArray.length
==
21
)
{
433
cdr.setSmscId(Long.parseLong(columnArray[i
-
1
].trim()));
434
}
else
{
435
cdr.setSmscId(Long.parseLong(columnArray[i].trim()));
436
}
437
}
else
if
(i
==
18
)
{
438
if
(columnArray.length
==
21
)
{
439
cal.setTime(sdf.parse(columnArray[i
-
1
].trim()));
440
cdr.setApplyTime(cal);
441
}
else
{
442
cal.setTime(sdf.parse(columnArray[i].trim()));
443
cdr.setApplyTime(cal);
444
}
445
}
else
if
(i
==
19
)
{
446
if
(columnArray.length
==
21
)
{
447
cal.setTime(sdf.parse(columnArray[i
-
1
].trim()));
448
cdr.setFinishTime(cal);
449
}
else
{
450
cal.setTime(sdf.parse(columnArray[i].trim()));
451
cdr.setFinishTime(cal);
452
}
453
}
else
{
454
int
payerType
=
cdr.getPayerType();
455
if
(payerType
==
3
)
{
456
cdr.setPrice(cdr.getMonthlyPrice());
457
}
else
if
(payerType
==
2
)
{
458
cdr.setPrice(cdr.getRatedPrice());
459
}
else
{
460
cdr.setPrice(
0
);
461
}
462
}
463
}
464
}
catch
(Exception e)
{
465
log.error(e.getMessage());
466
return
null
;
467
}
468
return
cdr;
469
}
470
471
/** */
/**
472
* 进行SQL字符串的规则化。
473
* 目前只处理将其中的'转换为内容,即加上转义符。
474
*/
475
public
static
String normalizeString(String sql)
{
476
//
在null的情况下,返回"",以便插入数据库。
477
//
因为null在数据库中插入后成为"null",不正确。
478
if
( (
null
==
sql)
||
(
""
.equals(sql)) )
479
return
""
;
480
481
int
lastIndex
=
sql.lastIndexOf(
"
'
"
);
482
if
( lastIndex
<
0
)
483
return
sql;
484
if
(
0
==
lastIndex )
485
return
"
'
"
+
sql;
486
487
int
[] sepIndexArray
=
new
int
[lastIndex
+
1
+
2
];
488
sepIndexArray[
0
]
=
0
;
489
490
int
startIndex
=
-
1
;
491
int
sepIndex
=
1
;
492
while
( (startIndex
=
sql.indexOf(
"
'
"
, startIndex
+
1
))
>=
0
)
493
sepIndexArray[sepIndex
++
]
=
startIndex;
494
495
sepIndexArray[sepIndex]
=
sql.length();
496
497
String result
=
sql.substring(sepIndexArray[
0
], sepIndexArray[
1
]);
498
for
(
int
i
=
1
; i
<
sepIndex; i
++
)
499
result
=
result
500
+
"
'
"
+
sql.substring(sepIndexArray[i], sepIndexArray[i
+
1
]);
501
502
return
result;
503
}
504
505
/** */
/**
506
* 格式化日期1
507
*
*/
508
public
static
String formatTime( Calendar cal, String format )
{
509
SimpleDateFormat localTimeFormatter
510
=
new
SimpleDateFormat(format);
511
return
localTimeFormatter.format(cal.getTime());
512
}
513
/** */
/**
514
* 格式化日期2
515
*
*/
516
public
static
Calendar formatDate( String time, String format )
{
517
try
{
518
Date d
=
new
Date();
519
SimpleDateFormat timeFormatter1
520
=
new
SimpleDateFormat(format);
521
d
=
timeFormatter1.parse(time);
522
Calendar cal
=
Calendar.getInstance();
523
cal.setTime(d);
524
return
cal;
525
}
catch
( Exception ex )
{
526
log.error(
"
error:
"
, ex);
527
return
Calendar.getInstance();
528
}
529
}
530
531
532
//
public static void main(String[] args) throws IOException{
533
//
File file = new File("c:\\hello.txt");
534
//
FileInputStream in = new FileInputStream(file);
535
//
BufferedReader br = new BufferedReader(new InputStreamReader(in));
536
//
ValidateContent vv = new ValidateContent();
537
//
vv.splitString(br.readLine());
538
//
}
539
}
540
posted on 2007-02-07 11:02
张金鹏
阅读(468)
评论(0)
编辑
收藏
所属分类:
core java中的一些数据结构的处理
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
截取字符串(针对字符串插入数据库,长度问题)
常用工具类
杂议java知识
发送邮件
文件上传
文件下载
前台分页
字符串变数组
去除所有引号的操作
与数据库操作相关的工具类
Powered by:
BlogJava
Copyright © 张金鹏