现在的位置: 首页 > 综合 > 正文

JAVA常用函数1

2012年10月16日 ⁄ 综合 ⁄ 共 11709字 ⁄ 字号 评论关闭
    /**
     * 将某个日期以固定格式转化成字符串
     * 
     * 
@param date
     * 
@return String
     
*/
    
public static String dateToStr(java.util.Date date)
    {
        SimpleDateFormat sdf 
= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str 
= sdf.format(date);
        
return str;
    }

    /**
     * 判断任意一个整数是否素数
     * 
     * 
@param n
     * 
@return boolean
     
*/
    
public static boolean isPrimes(int n)
    {
        
for (int i = 2; i <= Math.sqrt(n); i++)
        {
            
if (n % i == 0)
            {
                
return false;
            }
        }
        
return true;
    }

    /**
     * 获得任意一个整数的阶乘,递归
      * 
     * 
@param n
     * 
@return n!
     
*/
    
public static int factorial(int n)
    {
        
if (n == 1)
        {
            
return 1;
        }
        
return n * factorial(n - 1);
    }

    /**
     * 将指定byte数组以16进制的形式打印到控制台
     * 
     * 
@param hint
     *            String
     * 
@param b
     *            byte[]
     * 
@return void
     
*/
    
public static void printHexString(String hint, byte[] b)
    {
        System.out.print(hint);
        
for (int i = 0; i < b.length; i++)
        {
            String hex 
= Integer.toHexString(b[i] & 0xFF);
            
if (hex.length() == 1)
            {
                hex 
= '0' + hex;
            }
            System.out.print(hex.toUpperCase() 
+ " ");
        }
        System.out.println(
"");
    }

    wait();    //线程等待 
    notify();  //激活一个线程

/* * Db.java
Created on 2007年8月20日, 上午 8:37
*/
import java.io.*;
import java.sql.*;
import java.util.Properties;
public class Db {
    
private String driver;
    
private String url;
    
private String user;
    
private String password;
    
private Connection conn;
    
private Statement stm;
    
private ResultSet rs;
    
public Db(){
        
this("DBConf.properties");
    }
    
public Db(String conf) {
        loadProperties(conf);
        setConn();
    }
    
public Connection getConn(){
        
return this.conn;
    }
  
//handle the properties file to get the informations for connection
    private void loadProperties(String conf){
        Properties props 
= new Properties();
        
try {
            props.load(
new FileInputStream(conf));
        } 
catch (FileNotFoundException e) {
            e.printStackTrace();
        } 
catch (IOException e) {
            e.printStackTrace();
        }
        
this.driver = props.getProperty("driver");
        
this.url = props.getProperty("url");
        
this.user = props.getProperty("user");
        
this.password = props.getProperty("password");
    }
    
//implement the Connection
    private void setConn(){
        
try {
            Class.forName(driver);
            
this.conn = DriverManager.getConnection(url,user,password);
        } 
catch(ClassNotFoundException classnotfoundexception) {
              classnotfoundexception.printStackTrace();
            System.err.println(
"db: " + classnotfoundexception.getMessage());
        } 
catch(SQLException sqlexception) {
            System.err.println(
"db.getconn(): " + sqlexception.getMessage());
        }
    }
       
public void doInsert(String sql) {
        
try {
            Statement statement 
= conn.createStatement();
            
int i = stm.executeUpdate(sql);
        } 
catch(SQLException sqlexception) {
            System.err.println(
"db.executeInset:" + sqlexception.getMessage());
        }
    }
    
public void doDelete(String sql) {
        
try {
            stm 
= conn.createStatement();
            
int i = stm.executeUpdate(sql);
        } 
catch(SQLException sqlexception) {
            System.err.println(
"db.executeDelete:" + sqlexception.getMessage());
        }
    }
    
public void doUpdate(String sql) {
        
try {
            stm 
= conn.createStatement();
            
int i = stm.executeUpdate(sql);
        } 
catch(SQLException sqlexception) {
            System.err.println(
"db.executeUpdate:" + sqlexception.getMessage());
        }
    }
    
    
public ResultSet doSelect(String sql) {
        
try {
            stm 
= conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
            rs 
= stm.executeQuery(sql);
        } 
catch(SQLException sqlexception) {
            System.err.println(
"db.executeQuery: " + sqlexception.getMessage());
        }
        
return rs;
    }
    
public static void main(String[] args){
        
try{
            Db db 
= new Db();
            Connection conn 
= db.getConn();
            
if(conn != null && !conn.isClosed()) {
                System.out.println(
"連結成功");
                ResultSet rs 
= db.doSelect("select * from content");
                
while(rs.next()){
                    System.out.println(rs.getString(
1)+":"+rs.getString(2)+":"+rs.getString(3));
                  }
                rs.close();
                conn.close();
            }
        }
catch(SQLException e) {
            e.printStackTrace();
        }
    }  
}

DBConf.properties: 
driver=oracle.jdbc.driver.OracleDriver 
url
=jdbc:oracle:thin:@tdt151:1521:train 
user
=XX 
password
=XX 

    /**
     * 人民币转成大写
     * 
     * 
@param value
     * 
@return String
     
*/
    
public static String hangeToBig(double value)
    {
        
char[] hunit = { '''''' }; // 段内位置表示
        char[] vunit = { '''亿' }; // 段名表示
        char[] digit = { '''''''''''''''''''' }; // 数字表示
        long midVal = (long) (value * 100); // 转化成整形
        String valStr = String.valueOf(midVal); // 转化成字符串

        String head 
= valStr.substring(0, valStr.length() - 2); // 取整数部分
        String rail = valStr.substring(valStr.length() - 2); // 取小数部分

        String prefix 
= ""// 整数部分转化的结果
        String suffix = ""// 小数部分转化的结果
        
// 处理小数点后面的数
        if (rail.equals("00"))
        { 
// 如果小数部分为0
            suffix = "";
        }
        
else
        {
            suffix 
= digit[rail.charAt(0- '0'+ "" + digit[rail.charAt(1- '0'+ ""// 否则把角分转化出来
        }
        
// 处理小数点前面的数
        char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组
        char zero = '0'// 标志'0'表示出现过0
        byte zeroSerNum = 0// 连续出现0的次数
        for (int i = 0; i < chDig.length; i++)
        { 
// 循环处理每个数字
            int idx = (chDig.length - i - 1% 4// 取段内位置
            int vidx = (chDig.length - i - 1/ 4// 取段位置
            if (chDig[i] == '0')
            { 
// 如果当前字符是0
                zeroSerNum++// 连续0次数递增
                if (zero == '0')
                { 
// 标志
                    zero = digit[0];
                }
                
else if (idx == 0 && vidx > 0 && zeroSerNum < 4)
                {
                    prefix 
+= vunit[vidx - 1];
                    zero 
= '0';
                }
                
continue;
            }
            zeroSerNum 
= 0// 连续0次数清零
            if (zero != '0')
            { 
// 如果标志不为0,则加上,例如万,亿什么的
                prefix += zero;
                zero 
= '0';
            }
            prefix 
+= digit[chDig[i] - '0']; // 转化该数字表示
            if (idx > 0)
                prefix 
+= hunit[idx - 1];
            
if (idx == 0 && vidx > 0)
            {
                prefix 
+= vunit[vidx - 1]; // 段结束位置应该加上段名如万,亿
            }
        }

        if (prefix.length() > 0)
            prefix 
+= ''// 如果整数部分存在,则有圆的字样
        return prefix + suffix; // 返回正确表示
    }

    public static String getURLByDBInfo(DBInfo dbInfo)
    {
        String url 
= "";
        
if(dbInfo.getDbType() != null)
            
if(dbInfo.getDbType().equals("SQLSERVER"))
                url 
= (new StringBuilder("jdbc:microsoft:sqlserver://")).append(dbInfo.getDbHost()).append(":").append(dbInfo.getDbPort()).append(";DatabaseName=").append(dbInfo.getDbSID()).toString();
            
else
            
if(dbInfo.getDbType().equals("ORACLE"))
                url 
= (new StringBuilder("jdbc:oracle:thin:@")).append(dbInfo.getDbHost()).append(":").append(dbInfo.getDbPort()).append(":").append(dbInfo.getDbSID()).toString();
            
else
            
if(dbInfo.getDbType().equals("ORACLE_DSP"))
                url 
= (new StringBuilder("jdbc:dsp@")).append(dbInfo.getDbHost()).append(":").append(dbInfo.getDbPort()).append("/").append(dbInfo.getDbSID()).append("/").append(dbInfo.getNamespace()).toString();
            
else
            
if(dbInfo.getDbType().equals("SYBASE"))
                url 
= "jdbc:sybase:Tds:";
            
else
                url 
= "sun.jdbc.odbc.JdbcOdbcDriver";
        
return url;
    }

    /**
     * 全角字符转半角字符
     * 
     * 
@param QJStr
     * 
@return String
     
*/
    
public static final String QJToBJChange(String QJStr)
    {
        
char[] chr = QJStr.toCharArray();
        String str 
= "";
        
for (int i = 0; i < chr.length; i++)
        {
            chr[i] 
= (char) ((int) chr[i] - 65248);
            str 
+= chr[i];
        }
        
return str;
    }

    /**
     * 去掉字符串中重复的子字符串
     * 
     * 
@param str
     * 
@return String
     
*/
    
private static String removeSameString(String str)
    {
        Set
<String> mLinkedSet = new LinkedHashSet<String>();
        String[] strArray 
= str.split(" ");
        StringBuffer sb 
= new StringBuffer();

        for (int i = 0; i < strArray.length; i++)
        {
            
if (!mLinkedSet.contains(strArray[i]))
            {
                mLinkedSet.add(strArray[i]);
                sb.append(strArray[i] 
+ " ");
            }
        }
        System.out.println(mLinkedSet);
        
return sb.toString().substring(0, sb.toString().length() - 1);
    }

    /**
     * 设置JSpinner的编辑属性
     * 
@param spinner 目标JSpinner
     * 
@param isAllowInvalid 是否允许输入非法值
     * 
@param isEditable 是否允许编辑
     
*/
    
public static void setAllowsInvalid(JSpinner spinner, boolean isAllowInvalid, boolean isEditable)
    {
        JSpinner.NumberEditor editor 
= new JSpinner.NumberEditor(spinner, "#");
        spinner.setEditor(editor);
        JFormattedTextField tf 
= ((JSpinner.NumberEditor)spinner.getEditor()).getTextField();
        tf.setEditable(isEditable);
        DefaultFormatterFactory factory 
= (DefaultFormatterFactory)tf.getFormatterFactory();
        NumberFormatter formatter 
= (NumberFormatter)factory.getDefaultFormatter();
        formatter.setAllowsInvalid(isAllowInvalid);
    }

    /**   
     * 根据指定方法的参数去构造一个新的对象的拷贝并将他返回
     * 
@param obj 原始对象
     * 
@return 新对象
     * 
@throws NoSuchMethodException    
     * 
@throws InvocationTargetException    
     * 
@throws IllegalAccessException    
     * 
@throws InstantiationException    
     * 
@throws SecurityException    
     * 
@throws IllegalArgumentException    
     
*/
    @SuppressWarnings(
"unchecked")
    
public static Object copy(Object obj) throws IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException,
                    InvocationTargetException, NoSuchMethodException
    {
        
//获得对象的类型    
        Class classType = obj.getClass();

        //通过默认构造方法去创建一个新的对象,getConstructor的视其参数决定调用哪个构造方法    
        Object objectCopy = classType.getConstructor(new Class[]{}).newInstance(new Object[]{});

        //获得对象的所有属性    
        Field[] fields = classType.getDeclaredFields();

        for(int i = 0; i < fields.length; i++)
        {
            
//获取数组中对应的属性    
            Field field = fields[i];

            String fieldName = field.getName();
            String stringLetter 
= fieldName.substring(01).toUpperCase();

            //获得相应属性的getXXX和setXXX方法名称    
            String getName = "get" + stringLetter + fieldName.substring(1);
            String setName 
= "set" + stringLetter + fieldName.substring(1);

            //获取相应的方法    
            Method getMethod = classType.getMethod(getName, new Class[]{});
            Method setMethod 
= classType.getMethod(setName, new Class[]{field.getType()});

            //调用源对象的getXXX()方法    
            Object value = getMethod.invoke(obj, new Object[]{});

            //调用拷贝对象的setXXX()方法    
            setMethod.invoke(objectCopy, new Object[]{value});
        }

        return objectCopy;
    }

//过滤特殊字符
public static String encoding(String src){
        
if (src==null)
            
return

【上篇】
【下篇】

抱歉!评论已关闭.