1/** *//**
2 * 判断是不是合法手机
3 * handset 手机号码
4 */
5 public static boolean isHandset(String handset) {
6 try {
7 if(!handset.substring(0,1).equals("1")) {
8 return false;
9 }
10 if (handset==null || handset.length()!=11) {
11 return false;
12 }
13 String check = "^[0123456789]+$";
14 Pattern regex = Pattern.compile(check);
15 Matcher matcher = regex.matcher(handset);
16 boolean isMatched = matcher.matches();
17 if(isMatched) {
18 return true;
19 } else {
20 return false;
21 }
22 } catch (RuntimeException e) {
23 return false;
24 }
25 }
26}
27
28
1 /** *//**
2 * 将指定byte数组以16进制的形式打印到控制台
3 * @param hint
4 * String
5 * @param b
6 * byte[]
7 * @return void
8 */
9 public static void printHexString(String hint, byte[] b)
10 {
11 System.out.print(hint);
12 for (int i = 0; i < b.length; i++)
13 {
14 String hex = Integer.toHexString(b[i] & 0xFF);
15 if (hex.length() == 1)
16 {
17 hex = '0' + hex;
18 }
19 System.out.print(hex.toUpperCase() + " ");
20 }
21 System.out.println("");
22 }
23
1/** *//**
2 * 全角字符转半角字符
3 *
4 * @param QJStr
5 * @return String
6 */
7 public static final String QJToBJChange(String QJStr)
8 {
9 char[] chr = QJStr.toCharArray();
10 String str = "";
11 for (int i = 0; i < chr.length; i++)
12 {
13 chr[i] = (char) ((int) chr[i] - 65248);
14 str += chr[i];
15 }
16 return str;
17 }
1 /** *//**
2 * 去掉字符串中重复的子字符串
3 *
4 * @param str
5 * @return String
6 */
7 private static String removeSameString(String str)
8 {
9 Set<String> mLinkedSet = new LinkedHashSet<String>();
10 String[] strArray = str.split(" ");
11 StringBuffer sb = new StringBuffer();
12
13 for (int i = 0; i < strArray.length; i++)
14 {
15 if (!mLinkedSet.contains(strArray[i]))
16 {
17 mLinkedSet.add(strArray[i]);
18 sb.append(strArray[i] + " ");
19 }
20 }
21 System.out.println(mLinkedSet);
22 return sb.toString().substring(0, sb.toString().length() - 1);
23 }
1/** *//**
2 * 设置JSpinner的编辑属性
3 * @param spinner 目标JSpinner
4 * @param isAllowInvalid 是否允许输入非法值
5 * @param isEditable 是否允许编辑
6 */
7 public static void setAllowsInvalid(JSpinner spinner, boolean isAllowInvalid, boolean isEditable)
8 {
9 JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner, "#");
10 spinner.setEditor(editor);
11 JFormattedTextField tf = ((JSpinner.NumberEditor)spinner.getEditor()).getTextField();
12 tf.setEditable(isEditable);
13 DefaultFormatterFactory factory = (DefaultFormatterFactory)tf.getFormatterFactory();
14 NumberFormatter formatter = (NumberFormatter)factory.getDefaultFormatter();
15 formatter.setAllowsInvalid(isAllowInvalid);
16 }
17
1 /** *//**
2 * 根据指定方法的参数去构造一个新的对象的拷贝并将他返回
3 * @param obj 原始对象
4 * @return 新对象
5 * @throws NoSuchMethodException
6 * @throws InvocationTargetException
7 * @throws IllegalAccessException
8 * @throws InstantiationException
9 * @throws SecurityException
10 * @throws IllegalArgumentException
11 */
12 @SuppressWarnings("unchecked")
13 public static Object copy(Object obj) throws IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException,
14 InvocationTargetException, NoSuchMethodException
15 {
16 //获得对象的类型
17 Class classType = obj.getClass();
18
19 //通过默认构造方法去创建一个新的对象,getConstructor的视其参数决定调用哪个构造方法
20 Object objectCopy = classType.getConstructor(new Class[]{}).newInstance(new Object[]{});
21
22 //获得对象的所有属性
23 Field[] fields = classType.getDeclaredFields();
24
25 for(int i = 0; i < fields.length; i++)
26 {
27 //获取数组中对应的属性
28 Field field = fields[i];
29
30 String fieldName = field.getName();
31 String stringLetter = fieldName.substring(0, 1).toUpperCase();
32
33 //获得相应属性的getXXX和setXXX方法名称
34 String getName = "get" + stringLetter + fieldName.substring(1);
35 String setName = "set" + stringLetter + fieldName.substring(1);
36
37 //获取相应的方法
38 Method getMethod = classType.getMethod(getName, new Class[]{});
39 Method setMethod = classType.getMethod(setName, new Class[]{field.getType()});
40
41 //调用源对象的getXXX()方法
42 Object value = getMethod.invoke(obj, new Object[]{});
43
44 //调用拷贝对象的setXXX()方法
45 setMethod.invoke(objectCopy, new Object[]{value});
46 }
47
48 return objectCopy;
49 }
50
51
1//过滤特殊字符
2public static String encoding(String src){
3 if (src==null)
4 return "";
5 StringBuilder result=new StringBuilder();
6 if (src!=null){
7 src=src.trim();
8 for (int pos=0;pos<src.length();pos++){
9 switch(src.charAt(pos)){
10 case '\"':result.append(""");break;
11 case '<':result.append("<");break;
12 case '>':result.append(">");break;
13 case '\'':result.append("'");break;
14 case '&':result.append("&");break;
15 case '%':result.append("&pc;");break;
16 case '_':result.append("&ul;");break;
17 case '#':result.append("&shap;");break;
18 case '?':result.append("&ques;");break;
19 default:result.append(src.charAt(pos));break;
20 }
21 }
22 }
23 return result.toString();
24 }
25
26//反过滤特殊字符
27 public static String decoding(String src){
28 if (src==null)
29 return "";
30 String result=src;
31 result=result.replace(""", "\"").replace("'", "\'");
32 result=result.replace("<", "<").replace(">", ">");
33 result=result.replace("&", "&");
34 result=result.replace("&pc;", "%").replace("&ul", "_");
35 result=result.replace("&shap;", "#").replace("&ques", "?");
36 return result;
37 }
38
1 /** *//**
2 * 写入日志
3 * filePath 日志文件的路径
4 * code 要写入日志文件的内容
5 */
6 public static boolean print(String filePath,String code) {
7 try {
8 File tofile=new File(filePath);
9 FileWriter fw=new FileWriter(tofile,true);
10 BufferedWriter bw=new BufferedWriter(fw);
11 PrintWriter pw=new PrintWriter(bw);
12
13 System.out.println(getDate()+":"+code);
14 pw.println(getDate()+":"+code);
15 pw.close();
16 bw.close();
17 fw.close();
18 return true;
19 } catch (IOException e) {
20 return false;
21 }
22 }
23
1// 字符串匹配的算法.
2public String getMaxMatch(String a,String b) {
3 StringBuffer tmp = new StringBuffer();
4 String maxString = "";
5 int max = 0;
6 int len = 0;
7 char[] aArray = a.toCharArray();
8 char[] bArray = b.toCharArray();
9 int posA = 0;
10 int posB = 0;
11 while(posA<aArray.length-max) {
12 posB = 0;
13 while(posB<(bArray.length-max)) {
14 if(aArray[posA]==bArray[posB]) {
15 len = 1;
16 tmp = new StringBuffer();
17 tmp.append(aArray[posA]);
18 while((posA+len<aArray.length)&&(posB+len<bArray.length)&&(aArray[posA+len]==bArray[posB+len])) {
19 tmp.append(aArray[posA+len]);
20 len++;
21 }
22 if(len>max) {
23 max = len;
24 maxString = tmp.toString();
25 }
26 }
27 posB++;
28 }
29 posA++;
30 }
31 return maxString;
32 }
33
34
posted on 2008-07-23 17:20
scea2009 阅读(219)
评论(0) 编辑 收藏