zoukankan      html  css  js  c++  java
  • java常用用代码

    /**
    *Java获取IP代码
    */
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.net.InetAddress;
    import java.net.UnknownHostException;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    public class ip extends JFrame
      implements ActionListener
    {
      private static final long serialVersionUID = 3339481369781127417L;
      JButton jb1;
      JButton jb2;
      JButton jb3;
      JPanel jp;
      JLabel jl;
      JLabel jl1;
      JTextField jt;
     
      public ip()
      {
        this.jp = new JPanel();
        this.jl = new JLabel();
        this.jl1 = new JLabel("您的域名:");
        this.jb1 = new JButton("提交");
        this.jb2 = new JButton("重置");
        this.jb3 = new JButton("退出");
        this.jt = new JTextField(20);
        this.jb1.addActionListener(this);
        this.jb2.addActionListener(this);
        this.jb3.addActionListener(this);
        this.jp.setLayout(new GridLayout(3, 2));
        this.jp.add(this.jl1);
        this.jp.add(this.jt);
        this.jp.add(this.jb1);
        this.jp.add(this.jl);
        this.jp.add(this.jb2);
        this.jp.add(this.jb3);
     
        setBounds(200, 200, 500, 240);
        add(this.jp);
        setVisible(true);
        setDefaultCloseOperation(3);
      }
     
      public static void main(String[] args)
      {
        new ip();
      }
     
      public void actionPerformed(ActionEvent e) {
        if (e.getSource() == this.jb1) {
          String url = this.jt.getText();
          InetAddress ip = null;
          try {
            ip = InetAddress.getByName(url);
          }
          catch (UnknownHostException e1) {
            e1.printStackTrace();
          }
          this.jl.setText(ip.toString());
        }
        else if (e.getSource() == this.jb2) {
          this.jl.setText("");
          this.jt.setText("");
        } else {
          System.exit(0);
        }
      }
    }
    /**
         * 人民币转成大写
         * 
         * @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 class HffmanCoding {
        private int charsAndWeight[][];// [][0]是 字符,[][1]存放的是字符的权值(次数)
        private int hfmcoding[][];// 存放哈弗曼树
        private int i = 0;// 循环变量
        private String hcs[];
     
        public HffmanCoding(int[][] chars) {
            // TODO 构造方法
            charsAndWeight = new int[chars.length][2];
            charsAndWeight = chars;
            hfmcoding = new int[2 * chars.length - 1][4];// 为哈弗曼树分配空间
        }
     
        // 哈弗曼树的实现
        public void coding() {
            int n = charsAndWeight.length;
            if (n == 0)
                return;
            int m = 2 * n - 1;
            // 初始化哈弗曼树
            for (i = 0; i < n; i++) {
                hfmcoding[i][0] = charsAndWeight[i][1];// 初始化哈弗曼树的权值
                hfmcoding[i][1] = 0;// 初始化哈弗曼树的根节点
                hfmcoding[i][2] = 0;// 初始化哈弗曼树的左孩子
                hfmcoding[i][3] = 0;// 初始化哈弗曼树的右孩子
            }
            for (i = n; i < m; i++) {
                hfmcoding[i][0] = 0;// 初始化哈弗曼树的权值
                hfmcoding[i][1] = 0;// 初始化哈弗曼树的根节点
                hfmcoding[i][2] = 0;// 初始化哈弗曼树的左孩子
                hfmcoding[i][3] = 0;// 初始化哈弗曼树的右孩子
            }
     
            // 构建哈弗曼树
            for (i = n; i < m; i++) {
                int s1[] = select(i);// 在哈弗曼树中查找双亲为零的 weight最小的节点
                hfmcoding[s1[0]][1] = i;// 为哈弗曼树最小值付双亲
                hfmcoding[s1[1]][1] = i;
                hfmcoding[i][2] = s1[0];// 新节点的左孩子
                hfmcoding[i][3] = s1[1];// 新节点的右孩子
                hfmcoding[i][0] = hfmcoding[s1[0]][0] + hfmcoding[s1[1]][0];// 新节点的权值是左右孩子的权值之和
            }
     
        }
     
        // 查找双亲为零的 weight最小的节点
        private int[] select(int w) {
            // TODO Auto-generated method stub
            int s[] = { -1, -1 }, j = 0;// s1 最小权值且双亲为零的节点的序号 , i 是循环变量
            int min1 = 32767, min2 = 32767;
            for (j = 0; j < w; j++) {
                if (hfmcoding[j][1] == 0) {// 只在尚未构造二叉树的结点中查找(双亲为零的节点)
                    if (hfmcoding[j][0] < min1) {
                        min2 = min1;
                        s[1] = s[0];
                        min1 = hfmcoding[j][0];
                        s[0] = j;
     
                    } else if (hfmcoding[j][0] < min2) {
                        min2 = hfmcoding[j][0];
                        s[1] = j;
                    }
                }
            }
     
            return s;
        }
     
        public String[] CreateHCode() {// 根据哈夫曼树求哈夫曼编码
            int n = charsAndWeight.length;
            int i, f, c;
            String hcodeString = "";
            hcs = new String[n];
            for (i = 0; i < n; i++) {// 根据哈夫曼树求哈夫曼编码
                c = i;
                hcodeString = "";
                f = hfmcoding[i][1]; // f 哈弗曼树的根节点
                while (f != 0) {// 循序直到树根结点
                    if (hfmcoding[f][2] == c) {// 处理左孩子结点
                        hcodeString += "0";
                    } else {
                        hcodeString += "1";
                    }
                    c = f;
                    f = hfmcoding[f][1];
                }
                hcs[i] = new String(new StringBuffer(hcodeString).reverse());
            }
            return hcs;
        }
     
        public String show(String s) {// 对字符串显示编码
            String textString = "";
            char c[];
            int k = -1;
            c = new char[s.length()];
            c = s.toCharArray();// 将字符串转化为字符数组
            for (int i = 0; i < c.length; i++) {
                k = c[i];
                for (int j = 0; j < charsAndWeight.length; j++)
                    if (k == charsAndWeight[j][0])
                        textString += hcs[j];
            }
            return textString;
     
        }
     
        // 哈弗曼编码反编译
        public String reCoding(String s) {
     
            String text = "";// 存放反编译后的字符
            int k = 0, m = hfmcoding.length - 1;// 从根节点开始查询
            char c[];
            c = new char[s.length()];
            c = s.toCharArray();
            k = m;
            for (int i = 0; i < c.length; i++) {
                if (c[i] == '0') {
                    k = hfmcoding[k][2];// k的值为根节点左孩子的序号
                    if (hfmcoding[k][2] == 0 && hfmcoding[k][3] == 0)// 判断是不是叶子节点,条件(左右孩子都为零)
                    {
                        text += (char) charsAndWeight[k][0];
                        k = m;
                    }
                }
                if (c[i] == '1') {
                    k = hfmcoding[k][3];// k的值为根节点右孩子的序号
                    if (hfmcoding[k][2] == 0 && hfmcoding[k][3] == 0)// 判断是不是叶子节点,条件(左右孩子都为零)
                    {
                        text += (char) charsAndWeight[k][0];
                        k = m;
                    }
     
                }
            }
            return text;
        }
    }
    //java各种数据库连接
    //MySQL:    
        String Driver="com.mysql.jdbc.Driver";    //驱动程序
        String URL="jdbc:mysql://localhost:3306/db_name";    //连接的URL,db_name为数据库名    
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).new Instance();
        Connection con=DriverManager.getConnection(URL,Username,Password);
    Microsoft SQL Server 2.0驱动(3个jar的那个):
        String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";    //连接SQL数据库的方法
        String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";    //db_name为数据库名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).new Instance();    //加载数据可驱动
        Connection con=DriverManager.getConnection(URL,UserName,Password);    //
    Microsoft SQL Server 3.0驱动(1个jar的那个): // 老紫竹完善
        String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";    //连接SQL数据库的方法
        String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";    //db_name为数据库名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).new Instance();    //加载数据可驱动
        Connection con=DriverManager.getConnection(URL,UserName,Password);    //
    Sysbase:
        String Driver="com.sybase.jdbc.SybDriver";    //驱动程序
        String URL="jdbc:Sysbase://localhost:5007/db_name";    //db_name为数据可名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    
        Connection con=DriverManager.getConnection(URL,Username,Password);
    Oracle(用thin模式):
        String Driver="oracle.jdbc.driver.OracleDriver";    //连接数据库的方法
        String URL="jdbc:oracle:thin:@loaclhost:1521:orcl";    //orcl为数据库的SID
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    //加载数据库驱动
        Connection con=DriverManager.getConnection(URL,Username,Password);    
    PostgreSQL:
        String Driver="org.postgresql.Driver";    //连接数据库的方法
        String URL="jdbc:postgresql://localhost/db_name";    //db_name为数据可名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    
        Connection con=DriverManager.getConnection(URL,Username,Password);
    DB2:
        String Driver="com.ibm.db2.jdbc.app.DB2.Driver";    //连接具有DB2客户端的Provider实例
        //String Driver="com.ibm.db2.jdbc.net.DB2.Driver";    //连接不具有DB2客户端的Provider实例
        String URL="jdbc:db2://localhost:5000/db_name";    //db_name为数据可名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    
        Connection con=DriverManager.getConnection(URL,Username,Password);
    Informix:
        String Driver="com.informix.jdbc.IfxDriver";    
        String URL="jdbc:Informix-sqli://localhost:1533/db_name:INFORMIXSER=myserver";    //db_name为数据可名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    
        Connection con=DriverManager.getConnection(URL,Username,Password);
    JDBC-ODBC:
        String Driver="sun.jdbc.odbc.JdbcOdbcDriver";
        String URL="jdbc:odbc:dbsource";    //dbsource为数据源名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    
        Connection con=DriverManager.getConnection(URL,Username,Password);
    //点到线段的最短距离
    
    private double pointToLine(int x1, int y1, int x2, int y2, int x0,
                    int y0) {
                double space = 0;
                double a, b, c;
                a = lineSpace(x1, y1, x2, y2);// 线段的长度
                b = lineSpace(x1, y1, x0, y0);// (x1,y1)到点的距离
                c = lineSpace(x2, y2, x0, y0);// (x2,y2)到点的距离
                if (c <= 0.000001 || b <= 0.000001) {
                    space = 0;
                    return space;
                }
                if (a <= 0.000001) {
                    space = b;
                    return space;
                }
                if (c * c >= a * a + b * b) {
                    space = b;
                    return space;
                }
                if (b * b >= a * a + c * c) {
                    space = c;
                    return space;
                }
                double p = (a + b + c) / 2;// 半周长
                double s = Math.sqrt(p * (p - a) * (p - b) * (p - c));// 海伦公式求面积
                space = 2 * s / a;// 返回点到线的距离(利用三角形面积公式求高)
                return space;
            }
    
            // 计算两点之间的距离
            private double lineSpace(int x1, int y1, int x2, int y2) {
                double lineLength = 0;
                lineLength = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2)
                        * (y1 - y2));
                return lineLength;
    
            }
    //java系统托盘的应用
    
    package com.msg;   
      
    import java.applet.Applet;   
    import java.applet.AudioClip;   
    import java.awt.AWTException;   
    import java.awt.Image;   
    import java.awt.MenuItem;   
    import java.awt.PopupMenu;   
    import java.awt.SystemTray;   
    import java.awt.TextArea;   
    import java.awt.TrayIcon;   
    import java.awt.event.ActionEvent;   
    import java.awt.event.ActionListener;   
    import java.awt.event.MouseAdapter;   
    import java.awt.event.MouseEvent;   
    import java.awt.event.WindowAdapter;   
    import java.awt.event.WindowEvent;   
    import java.net.MalformedURLException;   
    import java.net.URL;   
    import java.util.Date;   
      
    import javax.swing.ImageIcon;   
    import javax.swing.JFrame;   
    import javax.swing.SwingUtilities;   
    import javax.swing.UIManager;   
    import javax.swing.UnsupportedLookAndFeelException;   
      
    import org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel;   
      
      
    /**  
     *   
     * 创建闪动的托盘图像  
     * @author Everest  
     *  
     */  
    public class BickerTray extends JFrame implements Runnable {   
      
        private static final long serialVersionUID = -3115128552716619277L;   
      
        private SystemTray sysTray;// 当前操作系统的托盘对象   
        private TrayIcon trayIcon;// 当前对象的托盘   
      
        private ImageIcon icon = null;   
        private TextArea ta = null;   
           
        private static int count = 1; //记录消息闪动的次数   
        private boolean flag = false; //是否有新消息   
        private static int times = 1; //接收消息次数   
      
        public BickerTray() {   
            this.createTrayIcon();// 创建托盘对象   
            Image image = this.getToolkit().getImage(getRes("com/img/f32.gif"));   
            this.setIconImage(image);   
            init();   
        }   
      
        public URL getRes(String str){   
             return this.getClass().getClassLoader().getResource(str);   
        }   
           
        /**  
         * 初始化窗体的方法  
         */  
        public void init() {   
            this.setTitle("消息盒子");   
            ta = new TextArea("");   
            ta.setEditable(false);   
            this.add(ta);   
            this.setSize(400, 400);   
            //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
            this.setLocationRelativeTo(null);   
            // 添加窗口最小化事件,将托盘添加到操作系统的托盘   
            /*this.addWindowListener(new WindowAdapter() {  
                public void windowIconified(WindowEvent e) {  
                    addTrayIcon();  
                }  
            });*/  
            addTrayIcon();   
            this.setVisible(true);   
        }   
      
        /**  
         * 添加托盘的方法  
         */  
        public void addTrayIcon() {   
            try {   
                sysTray.add(trayIcon);// 将托盘添加到操作系统的托盘   
                setVisible(false);    // 使得当前的窗口隐藏   
                new Thread(this).start();   
            } catch (AWTException e1) {   
                e1.printStackTrace();   
            }   
        }   
      
        /**  
         * 创建系统托盘的对象 步骤:   
         * 1,获得当前操作系统的托盘对象   
         * 2,创建弹出菜单popupMenu   
         * 3,创建托盘图标icon  
         * 4,创建系统的托盘对象trayIcon  
         */  
        public void createTrayIcon() {   
            sysTray = SystemTray.getSystemTray();// 获得当前操作系统的托盘对象   
            icon = new ImageIcon(getRes("com/img/f17.gif"));// 托盘图标   
            PopupMenu popupMenu = new PopupMenu();// 弹出菜单   
            MenuItem mi = new MenuItem("打开");   
            MenuItem exit = new MenuItem("退出");   
            popupMenu.add(mi);   
            popupMenu.add(exit);   
            // 为弹出菜单项添加事件   
            mi.addActionListener(new ActionListener() {   
                public void actionPerformed(ActionEvent e) {   
                    ta.setText(ta.getText()+"
    ==============================================
     《通知》 今天下午4:00到大礼堂开会。 
     第"+times+"次接收时间:"+ new Date().toLocaleString()); // 设置通知消息内容   
                    BickerTray.this.setExtendedState(JFrame.NORMAL);   
                    BickerTray.this.setVisible(true); // 显示窗口   
                    BickerTray.this.toFront(); //显示窗口到最前端   
                    flag = false;  //消息打开了   
                    count = 0; times++;   
                }   
            });   
            exit.addActionListener(new ActionListener() {   
                public void actionPerformed(ActionEvent e) {   
                    System.exit(0);   
                }   
            });   
            trayIcon = new TrayIcon(icon.getImage(), "消息盒子", popupMenu);   
            /** 添加鼠标监听器,当鼠标在托盘图标上双击时,默认显示窗口 */  
            trayIcon.addMouseListener(new MouseAdapter() {   
                public void mouseClicked(MouseEvent e) {   
                    if (e.getClickCount() == 2) { // 鼠标双击   
                        ta.setText(ta.getText()+"
    ==============================================
     《通知》 今天下午4:00到大礼堂开会。 
     第"+times+"次接收时间:"+ new Date().toLocaleString()); // 设置通知消息内容   
                        BickerTray.this.setExtendedState(JFrame.NORMAL);   
                        BickerTray.this.setVisible(true); // 显示窗口   
                        BickerTray.this.toFront();   
                        flag = false;  //消息打开了   
                        count = 0; times++;   
                    }   
                }   
            });   
        }   
      
        /**  
         * 线程控制闪动   
         */  
        public void run() {   
            while (true) {   
                if(flag){ // 有新消息   
                    try {   
                        if(count == 1){   
                            // 播放消息提示音   
                            //AudioPlayer p = new AudioPlayer(getRes("file:com/sound/Msg.wav"));   
                            //p.play(); p.stop();   
                            try {   
                                AudioClip p = Applet.newAudioClip(new URL("file:sound/msg.wav"));   
                                p.play();   
                            } catch (MalformedURLException e) {   
                                e.printStackTrace();   
                            }   
                        }   
                        // 闪动消息的空白时间   
                        this.trayIcon.setImage(new ImageIcon("").getImage());   
                        Thread.sleep(500);   
                        // 闪动消息的提示图片   
                        this.trayIcon.setImage(icon.getImage());   
                        Thread.sleep(500);   
                    } catch (Exception e) {   
                        e.printStackTrace();   
                    }   
                    count++;   
                }else{ // 无消息或是消息已经打开过   
                    this.trayIcon.setImage(icon.getImage());   
                    try {   
                        Thread.sleep(20000);   
                        flag = true;   
                    } catch (InterruptedException e) {   
                        e.printStackTrace();   
                    }   
                }   
            }   
        }   
      
        /**  
         * @param args  
         */  
        public static void main(String[] args) {   
            JFrame.setDefaultLookAndFeelDecorated(true);   
            try {   
                UIManager.setLookAndFeel(new SubstanceBusinessBlueSteelLookAndFeel());   
            } catch (UnsupportedLookAndFeelException e) {   
                e.printStackTrace();   
            }   
      
            SwingUtilities.invokeLater(new Runnable() {   
                public void run() {   
                    new BickerTray();   
                }   
            });   
        }   
      
    }  
    //java dos输入输出
    
    import java.util.*;
    public class DaoXu {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO 自动生成方法存根
            System.out.println("请输入单个字符并回车: ");
            Scanner c = new Scanner(System.in);
            
            String[] ch = new String[5];
            
            for(int i=0; i<5; i++){
                ch[i] = c.next();
            }
            
            //Arrays.sort(ch);
    
            System.out.print("倒序输出: ");
            for (int j = ch.length-1; j >= 0; j--) {
                System.out.print(ch[j]+" ");
            }
        }
    }
    //java日期处理bean
    
    import java.text.ParsePosition;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.regex.Pattern;
    
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    
    
    public class DateUtil {
        protected static Log logger = LogFactory.getLog(DateUtil.class);
    
        // 格式:年-月-日 小时:分钟:秒
        public static final String FORMAT_ONE = "yyyy-MM-dd HH:mm:ss";
    
        // 格式:年-月-日 小时:分钟
        public static final String FORMAT_TWO = "yyyy-MM-dd HH:mm";
    
        // 格式:年月日 小时分钟秒
        public static final String FORMAT_THREE = "yyyyMMdd-HHmmss";
    
        // 格式:年-月-日
        public static final String LONG_DATE_FORMAT = "yyyy-MM-dd";
    
        // 格式:月-日
        public static final String SHORT_DATE_FORMAT = "MM-dd";
    
        // 格式:小时:分钟:秒
        public static final String LONG_TIME_FORMAT = "HH:mm:ss";
    
        //格式:年-月
        public static final String MONTG_DATE_FORMAT = "yyyy-MM";
    
        // 年的加减
        public static final int SUB_YEAR = Calendar.YEAR;
    
        // 月加减
        public static final int SUB_MONTH = Calendar.MONTH;
    
        // 天的加减
        public static final int SUB_DAY = Calendar.DATE;
    
        // 小时的加减
        public static final int SUB_HOUR = Calendar.HOUR;
    
        // 分钟的加减
        public static final int SUB_MINUTE = Calendar.MINUTE;
    
        // 秒的加减
        public static final int SUB_SECOND = Calendar.SECOND;
    
        static final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四",
                "星期五", "星期六" };
    
        @SuppressWarnings("unused")
        private static final SimpleDateFormat timeFormat = new SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss");
    
        public DateUtil() {
        }
    
        /**
         * 把符合日期格式的字符串转换为日期类型
         */
        public static java.util.Date stringtoDate(String dateStr, String format) {
            Date d = null;
            SimpleDateFormat formater = new SimpleDateFormat(format);
            try {
                formater.setLenient(false);
                d = formater.parse(dateStr);
            } catch (Exception e) {
                // log.error(e);
                d = null;
            }
            return d;
        }
    
        /**
         * 把符合日期格式的字符串转换为日期类型
         */
        public static java.util.Date stringtoDate(String dateStr, String format,
                ParsePosition pos) {
            Date d = null;
            SimpleDateFormat formater = new SimpleDateFormat(format);
            try {
                formater.setLenient(false);
                d = formater.parse(dateStr, pos);
            } catch (Exception e) {
                d = null;
            }
            return d;
        }
    
        /**
         * 把日期转换为字符串
         */
        public static String dateToString(java.util.Date date, String format) {
            String result = "";
            SimpleDateFormat formater = new SimpleDateFormat(format);
            try {
                result = formater.format(date);
            } catch (Exception e) {
                // log.error(e);
            }
            return result;
        }
    
        /**
         * 获取当前时间的指定格式
         */
        public static String getCurrDate(String format) {
            return dateToString(new Date(), format);
        }
    
        public static String dateSub(int dateKind, String dateStr, int amount) {
            Date date = stringtoDate(dateStr, FORMAT_ONE);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(dateKind, amount);
            return dateToString(calendar.getTime(), FORMAT_ONE);
        }
    
        /**
         * 两个日期相减
         * @return 相减得到的秒数
         */
        public static long timeSub(String firstTime, String secTime) {
            long first = stringtoDate(firstTime, FORMAT_ONE).getTime();
            long second = stringtoDate(secTime, FORMAT_ONE).getTime();
            return (second - first) / 1000;
        }
    
        /**
         * 获得某月的天数
         */
        public static int getDaysOfMonth(String year, String month) {
            int days = 0;
            if (month.equals("1") || month.equals("3") || month.equals("5")
                    || month.equals("7") || month.equals("8") || month.equals("10")
                    || month.equals("12")) {
                days = 31;
            } else if (month.equals("4") || month.equals("6") || month.equals("9")
                    || month.equals("11")) {
                days = 30;
            } else {
                if ((Integer.parseInt(year) % 4 == 0 && Integer.parseInt(year) % 100 != 0)
                        || Integer.parseInt(year) % 400 == 0) {
                    days = 29;
                } else {
                    days = 28;
                }
            }
    
            return days;
        }
    
        /**
         * 获取某年某月的天数
         */
        public static int getDaysOfMonth(int year, int month) {
            Calendar calendar = Calendar.getInstance();
            calendar.set(year, month - 1, 1);
            return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        }
    
        /**
         * 获得当前日期
         */
        public static int getToday() {
            Calendar calendar = Calendar.getInstance();
            return calendar.get(Calendar.DATE);
        }
    
        /**
         * 获得当前月份
         */
        public static int getToMonth() {
            Calendar calendar = Calendar.getInstance();
            return calendar.get(Calendar.MONTH) + 1;
        }
    
        /**
         * 获得当前年份
         */
        public static int getToYear() {
            Calendar calendar = Calendar.getInstance();
            return calendar.get(Calendar.YEAR);
        }
    
        /**
         * 返回日期的天
         */
        public static int getDay(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return calendar.get(Calendar.DATE);
        }
    
        /**
         * 返回日期的年
         */
        public static int getYear(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return calendar.get(Calendar.YEAR);
        }
    
        /**
         * 返回日期的月份,1-12
         */
        public static int getMonth(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return calendar.get(Calendar.MONTH) + 1;
        }
    
        /**
         * 计算两个日期相差的天数,如果date2 > date1 返回正数,否则返回负数
         */
        public static long dayDiff(Date date1, Date date2) {
            return (date2.getTime() - date1.getTime()) / 86400000;
        }
    
        /**
         * 比较两个日期的年差
         */
        public static int yearDiff(String before, String after) {
            Date beforeDay = stringtoDate(before, LONG_DATE_FORMAT);
            Date afterDay = stringtoDate(after, LONG_DATE_FORMAT);
            return getYear(afterDay) - getYear(beforeDay);
        }
    
        /**
         * 比较指定日期与当前日期的差
         */
        public static int yearDiffCurr(String after) {
            Date beforeDay = new Date();
            Date afterDay = stringtoDate(after, LONG_DATE_FORMAT);
            return getYear(beforeDay) - getYear(afterDay);
        }
        
        /**
         * 比较指定日期与当前日期的差
         */
        public static long dayDiffCurr(String before) {
            Date currDate = DateUtil.stringtoDate(currDay(), LONG_DATE_FORMAT);
            Date beforeDate = stringtoDate(before, LONG_DATE_FORMAT);
            return (currDate.getTime() - beforeDate.getTime()) / 86400000;
    
        }
    
        /**
         * 获取每月的第一周
         */
        public static int getFirstWeekdayOfMonth(int year, int month) {
            Calendar c = Calendar.getInstance();
            c.setFirstDayOfWeek(Calendar.SATURDAY); // 星期天为第一天
            c.set(year, month - 1, 1);
            return c.get(Calendar.DAY_OF_WEEK);
        }
        /**
         * 获取每月的最后一周
         */
        public static int getLastWeekdayOfMonth(int year, int month) {
            Calendar c = Calendar.getInstance();
            c.setFirstDayOfWeek(Calendar.SATURDAY); // 星期天为第一天
            c.set(year, month - 1, getDaysOfMonth(year, month));
            return c.get(Calendar.DAY_OF_WEEK);
        }
    
        /**
         * 获得当前日期字符串,格式"yyyy_MM_dd_HH_mm_ss"
         * 
         * @return
         */
        public static String getCurrent() {
            Calendar cal = Calendar.getInstance();
            cal.setTime(new Date());
            int year = cal.get(Calendar.YEAR);
            int month = cal.get(Calendar.MONTH) + 1;
            int day = cal.get(Calendar.DAY_OF_MONTH);
            int hour = cal.get(Calendar.HOUR_OF_DAY);
            int minute = cal.get(Calendar.MINUTE);
            int second = cal.get(Calendar.SECOND);
            StringBuffer sb = new StringBuffer();
            sb.append(year).append("_").append(StringUtil.addzero(month, 2))
                    .append("_").append(StringUtil.addzero(day, 2)).append("_")
                    .append(StringUtil.addzero(hour, 2)).append("_").append(
                            StringUtil.addzero(minute, 2)).append("_").append(
                            StringUtil.addzero(second, 2));
            return sb.toString();
        }
    
        /**
         * 获得当前日期字符串,格式"yyyy-MM-dd HH:mm:ss"
         * 
         * @return
         */
        public static String getNow() {
            Calendar today = Calendar.getInstance();
            return dateToString(today.getTime(), FORMAT_ONE);
        }
    
       
    
        /**
         * 判断日期是否有效,包括闰年的情况
         * 
         * @param date
         *          YYYY-mm-dd
         * @return
         */
        public static boolean isDate(String date) {
            StringBuffer reg = new StringBuffer(
                    "^((\d{2}(([02468][048])|([13579][26]))-?((((0?");
            reg.append("[13578])|(1[02]))-?((0?[1-9])|([1-2][0-9])|(3[01])))");
            reg.append("|(((0?[469])|(11))-?((0?[1-9])|([1-2][0-9])|(30)))|");
            reg.append("(0?2-?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][12");
            reg.append("35679])|([13579][01345789]))-?((((0?[13578])|(1[02]))");
            reg.append("-?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))");
            reg.append("-?((0?[1-9])|([1-2][0-9])|(30)))|(0?2-?((0?[");
            reg.append("1-9])|(1[0-9])|(2[0-8]))))))");
            Pattern p = Pattern.compile(reg.toString());
            return p.matcher(date).matches();
        }
    
        
       
       
    //java访问资源文件
    
    import java.io.FileInputStream;   
    import java.io.FileOutputStream;   
    import java.util.Properties;   
      
    public class PropertyEditor {   
        public static void main(String[] args) throws Exception {   
            Properties prop = new Properties();// 属性集合对象   
            FileInputStream fis = new FileInputStream("prop.properties");// 属性文件输入流   (相对于根目录下的文件名,要加上包名 “src/prop.properties”)
            prop.load(fis);// 将属性文件流装载到Properties对象中   
            fis.close();// 关闭流   
      
            // 获取属性值,sitename已在文件中定义   
            System.out.println("获取属性值:sitename=" + prop.getProperty("sitename"));   
            // 获取属性值,country未在文件中定义,将在此程序中返回一个默认值,但并不修改属性文件   
            System.out.println("获取属性值:country=" + prop.getProperty("country", "中国"));   
      
            // 修改sitename的属性值   
            prop.setProperty("sitename", "中国");   
            // 添加一个新的属性studio   
            prop.setProperty("studio", "Boxcode Studio");   
            // 文件输出流   
            FileOutputStream fos = new FileOutputStream("prop.properties");   
            // 将Properties集合保存到流中   
            prop.store(fos, "Copyright (c) Boxcode Studio");   
            fos.close();// 关闭流   
        }   
    }  
    //java自定义按钮外观
    
    
    
    import java.awt.FlowLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.UIManager;
    import javax.swing.plaf.synth.SynthLookAndFeel;
     
    public class MyButton {
     JFrame frame = new JFrame("Test Buttons");
     JButton jButton = new JButton("JButton"); // 按钮
     public MyButton() {
      frame.setLayout(new FlowLayout());
      frame.getContentPane().add(jButton);
     }
     public void show() {
      frame.pack();
      frame.show();
     }
     public static void main(String[] args) {
      MyButton tb = new MyButton();
      tb.show();
      SynthLookAndFeel slf = new SynthLookAndFeel();
      try {
          slf.load(MyButton.class.getResourceAsStream("mybutton.xml"), MyButton.class);
          UIManager.setLookAndFeel(slf);
      } catch (Exception e) {
          e.printStackTrace();
          return;
      }
    
     }
    }
    //java   jdbc数据库连接
    
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    
    public class JDBConnection {
        public Connection conn = null; // 声明Connection对象的实例
        public Statement stmt = null; // 声明Statement对象的实例
        public ResultSet rs = null; // 声明ResultSet对象的实例
        
        private static String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";//定义保存数据库驱动的变量
        private static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DB_ATM";
        private static String dbUser = "sa";
        private static String dbPwd = "sa";
    
        public JDBConnection(String propertyFileName) {// 带属性文件名的构造方法
            Properties prop = new Properties();// 属性集合对象
            InputStream is = null;
            try {
                is = JDBConnection.class.getClassLoader().getResourceAsStream(
                        propertyFileName);// 属性文件输入流
                // is = new FileInputStream("src/" + propertyFileName);
                prop.load(is);// 将属性文件流装载到Properties对象中
                is.close();// 关闭流
                dbClassName = prop.getProperty("dbClassName");
                dbUrl = prop.getProperty("dbUrl");
                dbUser = prop.getProperty("dbUser");
                dbPwd = prop.getProperty("dbPwd");
            } catch (Exception e) {
                System.out.println("属性文件  " + propertyFileName + " 打开失败!");
            }
            try {
    
                Class.forName(dbClassName);// 1.注册驱动
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
        public JDBConnection() {// 默认的不带参数的构造函数
            try {
    
                Class.forName(dbClassName);// 1.注册驱动
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
        public static Connection getConnection() {
            Connection conn = null;
            try {
                // Class.forName(dbClassName);// 1.注册驱动
                conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);//2.建立与数据库的链接
            } catch (Exception ee) {
                ee.printStackTrace();
            }
            if (conn == null) {
                System.err
                        .println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.
    
    链接类型:"
                                + dbClassName
                                + "
    链接位置:"
                                + dbUrl
                                + "
    用户/密码"
                                + dbUser + "/" + dbPwd);
            }
            return conn;
        }
    
        /*
         * 功能:执行查询语句
         */
        public ResultSet executeQuery(String sql) {
            try { // 捕捉异常
                conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn
                stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,//3.创建语句
                        ResultSet.CONCUR_READ_ONLY);
                rs = stmt.executeQuery(sql);//4.执行查询
            } catch (SQLException ex) {
                System.err.println(ex.getMessage()); // 输出异常信息
            }
            return rs; // 返回结果集对象 5.结果处理
        }
    
        /*
         * 功能:执行更新操作
         */
        public int executeUpdate(String sql) {
            int result = 0; // 定义保存返回值的变量
            try { // 捕捉异常
                conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn
                stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                        ResultSet.CONCUR_READ_ONLY);
                result = stmt.executeUpdate(sql); // 执行更新操作
            } catch (SQLException ex) {
                result = 0; // 将保存返回值的变量赋值为0
            }
            return result; // 返回保存返回值的变量
        }
    
        /*
         * 功能:关闭数据库的连接
         */
        public void close() {//6.释放资源
            try { // 捕捉异常
                try {
                    if (rs != null) { // 当ResultSet对象的实例rs不为空时
                        rs.close(); // 关闭ResultSet对象
                    }
                } finally {
                    try {
                        if (stmt != null) { // 当Statement对象的实例stmt不为空时
                            stmt.close(); // 关闭Statement对象
                        }
                    } finally {
                        if (conn != null) { // 当Connection对象的实例conn不为空时
                            conn.close(); // 关闭Connection对象
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace(System.err); // 输出异常信息
            }
        }
    
    }
    //java访问xml文件
    
    import java.io.*;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    
    public class xmljava
    { 
    
    public static void main(String args[])
        {    
              Element element=null;
              File f =new File("a.xml");
              DocumentBuilder db=null;        //documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件)
              DocumentBuilderFactory dbf=null; 
          try{
             
              dbf= DocumentBuilderFactory.newInstance(); //返回documentBuilderFactory对象   
              db =dbf.newDocumentBuilder();//返回db对象用documentBuilderFatory对象获得返回documentBuildr对象
    
              Document dt= db.parse(f); //得到一个DOM并返回给document对象
              element = dt.getDocumentElement();//得到一个elment根元素
              
              System.out.println("根元素:"+element.getNodeName()); //获得根节点
    
            NodeList childNodes =element.getChildNodes() ;    // 获得根元素下的子节点
        
          for (int i = 0; i < childNodes.getLength(); i++)     // 遍历这些子节点
    
       {       
           Node node1 = childNodes.item(i); // childNodes.item(i); 获得每个对应位置i的结点
    
         if ("Account".equals(node1.getNodeName())) 
          { 
                            // 如果节点的名称为"Account",则输出Account元素属性type
          System.out.println("
    找到一篇账号. 所属区域: "   + node1.getAttributes().getNamedItem        ("type").getNodeValue() + ". ");
          NodeList nodeDetail = node1.getChildNodes();   // 获得<Accounts>下的节点
          for (int j = 0; j < nodeDetail.getLength(); j++)
           {   // 遍历<Accounts>下的节点
              Node detail = nodeDetail.item(j);    // 获得<Accounts>元素每一个节点
                if ("code".equals(detail.getNodeName()))   // 输出code
                System.out.println("卡号: " + detail.getTextContent());
                 else if ("pass".equals(detail.getNodeName())) // 输出pass
                    System.out.println("密码: " + detail.getTextContent());
                 else if ("name".equals(detail.getNodeName())) // 输出name
                    System.out.println("姓名: " + detail.getTextContent());
                 else if ("money".equals(detail.getNodeName())) // 输出money
                     System.out.println("余额: "+ detail.getTextContent());
          
            }
          }
    
        }
    }
    
    catch(Exception e){System.out.println(e);}
        
    }
    }
    
    
    //XML CODE  FILE
    
    <?xml version="1.0" encoding="gbk"?>      
    <Accounts>
    <Account type="by0003"> 
    <code>100001</code>
    <pass>123</pass>
    <name>李四</name> 
    <money>1000000.00</money> 
    </Account> 
    <Account type="hz0001"> 
    <code>100002</code>
    <pass>123</pass>
    <name>张三</name> 
    <money>1000.00</money> 
    </Account> 
    </Accounts>
  • 相关阅读:
    Web大文件上传断点续传解决方案
    STL 源代码剖析 算法 stl_algo.h -- rotate
    BZOJ 1260 CQOI2007 涂色paint 动态规划
    Shiro学习(总结)
    数组与指针
    Doing Homework again(杭电1789)
    leetCode 75.Sort Colors (颜色排序) 解题思路和方法
    hdu 4786 Fibonacci Tree(最小生成树)
    Havel--Hakimi定理推断可图化 python
    最近小感——一个残疾人写的操作系统
  • 原文地址:https://www.cnblogs.com/flay/p/3321726.html
Copyright © 2011-2022 走看看