JAVA常用函数3

单例模式代码
public class Singleton
{
    
private Singleton()
    {
    }

    
synchronized public static Singleton getInstance()
    {
        
if (m_instance == null)
        {
            m_instance 
= new Singleton();
        }
        
return m_instance;
    }

    
/**
     * @label Creates
     
*/
    
private static Singleton m_instance = null;
}

一个简单的字符串过滤函数,常用来判断字符串是否为空
public static String trim(String str)
{
   
if(str==null)
      str
="";
   
if(!str.equals(""))
      str
=str.trim();
   
return str;
}


Java日期格式化及其使用例子 
1 SimpleDateFormat担当重任,怎样格式化都行 

import java.util.Date; 
import java.text.SimpleDateFormat; 
public class Demo 

public static void main(String[] args) 

  Date now
=new Date(); 
  SimpleDateFormat f
=newSimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分"); 
  System.out.println(f.format(now)); 
  
  f
=new SimpleDateFormat("a hh点mm分ss秒"); 
  System.out.println(f.format(now)); 
  } 



2 从字符串到日期类型的转换: 

import java.util.Date; 
import java.text.SimpleDateFormat; 
import java.util.GregorianCalendar; 
import java.text.*
publicclass Demo 

public static void main(String[] args) 

  String strDate
="2005年04月22日"
  
//注意:SimpleDateFormat构造函数的样式与strDate的样式必须相符 
  SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日"); 
  
//必须捕获异常 

  
try 
  { 
  Date date
=simpleDateFormat.parse(strDate); 
  System.out.println(date); 
  } 
  
catch(ParseException px) 
  { 
  px.printStackTrace(); 
  } 




3 将毫秒数换转成日期类型 

import java.util.Date; 
import java.text.SimpleDateFormat; 
import java.util.GregorianCalendar; 
import java.text.*
public class Demo 

public static void main(String[] args) 

  
long now=System.currentTimeMillis(); 
  System.out.println(
"毫秒数:"+now); 
  Date dNow
=new Date(now); 
  System.out.println(
"日期类型:"+dNow); 




这3例源自http:
//blog.csdn.net/zhoujian2003/archive/2005/04/22/358363.aspx 

4 获取系统时期和时间,转换成SQL格式后更新到数据库 
(http:
//blog.csdn.net/netrope/archive/2005/11/19/532729.aspx) 

java.util.Date d
=new java.util.Date();    //获取当前系统的时间 

//格式化日期 

new java.text.SimpleDateFormat s= new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

String dateStr 
= s.format(d); //转为字符串 

使用RS更新数据库,仍然要用rs.updateString,而不是rs.updateDade。 
rs.updateString(
"regtime",dateStr);  //regtime字段为datetime类型的 
下面两例源自 http://blog.csdn.net/kingter520/archive/2004/10/27/155435.aspx 

5 按本地时区输出当前日期 

Date myDate 
= new Date(); 
System.out.println(myDate.toLocaleString()); 
输出结果为: 
2003-5-30 


6 如何格式化小数 

DecimalFormat df 
= new DecimalFormat(",###.00");  
double aNumber = 33665448856.6568975
String result 
= df.format(aNumber);  
Sytem. out.println(result); 


输出结果为: 
33,665,448,856.66 

其他:获取毫秒时间 System.currentTimeMillis(); 

7 在数据库里的日期只以年--日的方式输出 
(http:
//blog.csdn.net/zzsxvzzsxv/archive/2007/08/27/1761004.aspx) 
定义日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd); 
sql语句为:String sqlStr 
= "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'"
输出: 
System.out.println(df.format(rs.getDate(
"bookDate")));

字符串 
1、获取字符串的长度 
length() 
2 、判断字符串的前缀或后缀与已知字符串是否相同 
前缀 startsWith(String s) 
后缀 endsWith(String s) 
3、比较两个字符串 
equals(String s) 
4、把字符串转化为相应的数值 
int型 Integer.parseInt(字符串) 
long型 Long.parseLong(字符串) 
float型 Folat.valueOf(字符串).floatValue() 
double型 Double.valueOf(字符串).doubleValue() 
4、将数值转化为字符串 
valueOf(数值) 
5、字符串检索 
indexOf(Srting s) 从头开始检索 
indexOf(String s ,
int startpoint) 从startpoint处开始检索 
如果没有检索到,将返回
-1 
6、得到字符串的子字符串 
substring(
int startpoint) 从startpoint处开始获取 
substring(
int start,int end) 从start到end中间的字符 
7、替换字符串中的字符,去掉字符串前后空格 
replace(
char old,char new) 用new替换old 
trim() 
8、分析字符串 
StringTokenizer(String s) 构造一个分析器,使用默认分隔字符(空格,换行,回车,Tab,进纸符) 
StringTokenizer(String s,String delim) delim是自己定义的分隔符 
nextToken() 逐个获取字符串中的语言符号 
boolean hasMoreTokens() 只要字符串还有语言符号将返回true,否则返回false 
countTokens() 得到一共有多少个语言符号 

Java中的鼠标和键盘事件 
1、使用MouseListener借口处理鼠标事件 
鼠标事件有5种:按下鼠标键,释放鼠标键,点击鼠标键,鼠标进入和鼠标退出 
鼠标事件类型是MouseEvent,主要方法有: 
getX(),getY() 获取鼠标位置 
getModifiers() 获取鼠标左键或者右键 
getClickCount() 获取鼠标被点击的次数 
getSource() 获取鼠标发生的事件源 
事件源获得监视器的方法是addMouseListener(),移去监视器的方法是removeMouseListener() 
处理事件源发生的时间的事件的接口是MouseListener 接口中有如下的方法 
mousePressed(MouseEvent) 负责处理鼠标按下事件 
mouseReleased(MouseEvent) 负责处理鼠标释放事件 
mouseEntered(MouseEvent) 负责处理鼠标进入容器事件 
mouseExited(MouseEvent) 负责处理鼠标离开事件 
mouseClicked(MouseEvent) 负责处理点击事件 
2、使用MouseMotionListener接口处理鼠标事件 
事件源发生的鼠标事件有2种:拖动鼠标和鼠标移动 
鼠标事件的类型是MouseEvent 
事件源获得监视器的方法是addMouseMotionListener() 
处理事件源发生的事件的接口是MouseMotionListener 接口中有如下的方法 
mouseDragged() 负责处理鼠标拖动事件 
mouseMoved() 负责处理鼠标移动事件 
3、控制鼠标的指针形状 
setCursor(Cursor.getPreddfinedCursor(Cursor.鼠标形状定义)) 鼠标形状定义见(书 P 
210) 
4、键盘事件 
键盘事件源使用addKeyListener 方法获得监视器 
键盘事件的接口是KeyListener 接口中有3个方法 
public void keyPressed(KeyEvent e) 按下键盘按键 
public void keyReleased(KeyEvent e) 释放键盘按键 
public void keyTypde(KeyEvent e) 按下又释放键盘按键


 
public class IsChineseOrEnglish {
 
//  GENERAL_PUNCTUATION 判断中文的“号
 
//  CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号
 
//  HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号
   public static boolean isChinese(char c) {
      Character.UnicodeBlock ub 
= Character.UnicodeBlock.of(c);  
      
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
        
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
        
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
        
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION 
        
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
        
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS){
       
return true;
      }
      
return false;
   }
   
public static void isChinese(String strName) {
      
char[] ch = strName.toCharArray();
      
for (int i = 0; i < ch.length; i++) {
    
char c = ch[i];
    
if(isChinese(c)==true){
     System.out.println(isChinese(c));
    
return;
   }
else{
     System.out.println(isChinese(c));
     
return ;
    }
   }
   }
   
   
public static void main(String[] args){

    isChinese(
"zhongguo");
    isChinese(
"中国");
  }

 }


MD5和一个可逆加密算法相接合的加密和解密程序 

import java.security.MessageDigest; 
/** 
*先通过MD5加密之后,再来一次可逆的加密。 
*顺序可以调整,可以选择先用可逆加密,然后再用MD5加密 
*/ 
public class MD5andKL{ 
//MD5加码。32位 
public static String MD5(String inStr) { 
MessageDigest md5 
= null
try { 
md5 
= MessageDigest.getInstance("MD5"); 
catch (Exception e) { 
System.out.println(e.toString()); 
e.printStackTrace(); 
return ""

char[] charArray = inStr.toCharArray(); 
byte[] byteArray = new byte[charArray.length]; 

for (int i = 0; i < charArray.length; i++
byteArray[i] 
= (byte) charArray[i]; 

byte[] md5Bytes = md5.digest(byteArray); 

StringBuffer hexValue 
= new StringBuffer(); 

for (int i = 0; i < md5Bytes.length; i++) { 
int val = ((int) md5Bytes[i]) & 0xff
if (val < 16
hexValue.append(
"0"); 
hexValue.append(Integer.toHexString(val)); 


return hexValue.toString(); 


//可逆的加密算法 
public static String KL(String inStr){ 
//String s = new String(inStr); 
char[] a = inStr.toCharArray();  
  
for (int i = 0;i <a.length;i++)  {  
  a[i] 
= (char)(a[i]^'t');  
  }  
  String s
=new String(a); 
  
return s;  

//加密后解密 
public static String JM(String inStr){ 
char[] a=inStr.toCharArray(); 
for (int i = 0;i <a.length;i++)  {  
a[i]
= (char)(a[i]^'t');  
  }      
  String k
=new String(a); 
  
return k; 

//测试主函数 
public static void main (String args[]){ 
String s 
= new String("admin"); 
System.out.println(
"原始:"+s); 
System.out.println(
"MD5后:"+MD5(s)); 
System.out.println(
"MD5后再加密:"+KL(MD5(s))); 
System.out.println(
"解密为MD5后的:"+JM(KL(MD5(s)))); 




    
import java.beans.IntrospectionException;
    
import java.beans.Introspector;
    
import java.beans.PropertyDescriptor;
    
import java.math.BigDecimal;
    
import java.math.BigInteger;
    
import java.util.List;
    
import java.util.Map;
    
import java.util.Set;
    
/**
     * 序列化对象为JSON格式 遵循JSON组织公布标准
     * 
     * @date 2008/05/07
     * 
@version 1.0.0
     
*/
    
public class Json {
        
/** Commons Logging instance. */
        
private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Json.class);
        
/**
         * 
@param obj 任意对象
         * 
@return String
         
*/
        
public static String object2json(Object obj) {
            StringBuilder json 
= new StringBuilder();
            
if (obj == null) {
                json.append(
"\"\"");
            } 
else if (obj instanceof String || obj instanceof Integer || obj instanceof Float || obj instanceof Boolean
                    
|| obj instanceof Short || obj instanceof Double || obj instanceof Long || obj instanceof BigDecimal
                    
|| obj instanceof BigInteger || obj instanceof Byte) {
                json.append(
"\"").append(string2json(obj.toString())).append("\"");
            } 
else if (obj instanceof Object[]) {
                json.append(array2json((Object[]) obj));
            } 
else if (obj instanceof List) {
                json.append(list2json((List
<?>) obj));
            } 
else if (obj instanceof Map) {
                json.append(map2json((Map
<??>) obj));
            } 
else if (obj instanceof Set) {
                json.append(set2json((Set
<?>) obj));
            } 
else {
                json.append(bean2json(obj));
            }
            
return json.toString();
        }
        
/**
         * 
@param bean bean对象
         * 
@return String
         
*/
        
public static String bean2json(Object bean) {
            StringBuilder json 
= new StringBuilder();
            json.append(
"{");
            PropertyDescriptor[] props 
= null;
            
try {
                props 
= Introspector.getBeanInfo(bean.getClass(), Object.class).getPropertyDescriptors();
            } 
catch (IntrospectionException e) {
            }
            
if (props != null) {
                
for (int i = 0; i < props.length; i++) {
                    
try {
                        String name 
= object2json(props[i].getName());
                        String value 
= object2json(props[i].getReadMethod().invoke(bean));
                        json.append(name);
                        json.append(
":");
                        json.append(value);
                        json.append(
",");
                    } 
catch (Exception e) {
                    }
                }
                json.setCharAt(json.length() 
- 1'}');
            } 
else {
                json.append(
"}");
            }
            
return json.toString();
        }
        
/**
         * 
@param list list对象
         * 
@return String
         
*/
        
public static String list2json(List<?> list) {
            StringBuilder json 
= new StringBuilder();
            json.append(
"[");
            
if (list != null && list.size() > 0) {
                
for (Object obj : list) {
                    json.append(object2json(obj));
                    json.append(
",");
                }
                json.setCharAt(json.length() 
- 1']');
            } 
else {
                json.append(
"]");
            }
            
return json.toString();
        }
        
/**
         * 
@param array 对象数组
         * 
@return String
         
*/
        
public static String array2json(Object[] array) {
            StringBuilder json 
= new StringBuilder();
            json.append(
"[");
            
if (array != null && array.length > 0) {
                
for (Object obj : array) {
                    json.append(object2json(obj));
                    json.append(
",");
                }
                json.setCharAt(json.length() 
- 1']');
            } 
else {
                json.append(
"]");
            }
            
return json.toString();
        }
        
/**
         * 
@param map map对象
         * 
@return String
         
*/
        
public static String map2json(Map<??> map) {
            StringBuilder json 
= new StringBuilder();
            json.append(
"{");
            
if (map != null && map.size() > 0) {
                
for (Object key : map.keySet()) {
                    json.append(object2json(key));
                    json.append(
":");
                    json.append(object2json(map.get(key)));
                    json.append(
",");
                }
                json.setCharAt(json.length() 
- 1'}');
            } 
else {
                json.append(
"}");
            }
            
return json.toString();
        }
        
/**
         * 
@param set 集合对象
         * 
@return String
         
*/
        
public static String set2json(Set<?> set) {
            StringBuilder json 
= new StringBuilder();
            json.append(
"[");
            
if (set != null && set.size() > 0) {
                
for (Object obj : set) {
                    json.append(object2json(obj));
                    json.append(
",");
                }
                json.setCharAt(json.length() 
- 1']');
            } 
else {
                json.append(
"]");
            }
            
return json.toString();
        }
        
/**
         * 
@param s 参数
         * 
@return String
         
*/
        
public static String string2json(String s) {
            
if (s == null)
                
return "";
            StringBuilder sb 
= new StringBuilder();
            
for (int i = 0; i < s.length(); i++) {
                
char ch = s.charAt(i);
                
switch (ch) {
                
case '"':
                    sb.append(
"\\\"");
                    break;
                
case '\\':
                    sb.append(
"\\\\");
                    
break;
                
case '\b':
                    sb.append(
"\\b");
                    
break;
                
case '\f':
                    sb.append(
"\\f");
                    
break;
                
case '\n':
                    sb.append(
"\\n");
                    
break;
                
case '\r':
                    sb.append(
"\\r");
                    
break;
                
case '\t':
                    sb.append(
"\\t");
                    
break;
                
case '/':
                    sb.append(
"\\/");
                    
break;
                
default:
                    
if (ch >= '\u0000' && ch <= '\u001F') {
                        String ss 
= Integer.toHexString(ch);
                        sb.append(
"\\u");
                        
for (int k = 0; k < 4 - ss.length(); k++) {
                            sb.append(
'0');
                        }
                        sb.append(ss.toUpperCase());
                    } 
else {
                        sb.append(ch);
                    }
                }
            }
            
return sb.toString();
        }
    }


 
posted @ 2009-10-09 23:06  angushine  阅读(384)  评论(0编辑  收藏  举报