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()+"\n==============================================\n 《通知》 今天下午4:00到大礼堂开会。 \n 第"+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()+"\n==============================================\n 《通知》 今天下午4:00到大礼堂开会。 \n 第"+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() 获得数据库链接失败.\r\n\r\n链接类型:"
- + dbClassName
- + "\r\n链接位置:"
- + dbUrl
- + "\r\n用户/密码"
- + 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("\r\n找到一篇账号. 所属区域: " + 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>
java常用用代码的更多相关文章
- java常用公共代码二之分页代码的实现
在项目中,我们经常会写到一些公共的代码,来让开发人员调用,减少代码重复,下面,我就将一些常用到的公共类贴出来和大家分享!! 二.分页代码实现:在项目中,分页是一个项目中必不可少的,它可以防止我们从数据 ...
- java 常用模块代码
1.文件的读写操作 (1)进行读操作 import java.io.BufferedReader; import java.io.FileNotFoundException; import java. ...
- Java常用基础代码
1.加载properties文件 Properties properties = new Properties(); properties.load(Properties.class.getReso ...
- Java常用代码段 - 未完待续
记录一些自己写项目常用的代码段. 格式化常用日期格式 Date date = new Date(System.currentTimeMillis()); DateFormat d3 = DateFor ...
- java常用英文解释
java常用名词解释: OO: object-oriented ,面向对象 OOP:object-oriented programming,面向对象编程 Author:JCC Object:对象JDK ...
- JAVA常用的XML解析方法
转并总结自(java xml) JAVA常用的解析xml的方法有四种,分别是DOM,JAX,JDOM,DOM4j xml文件 <?xml version="1.0" enco ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
- java开发功能代码汇总
多文件上传 http://smotive.iteye.com/blog/1903606 java 常用代码 Struts2 前后台(Action ,jsp)传值.取值 Action public Li ...
- 分享非常有用的Java程序(关键代码)(八)---Java InputStream读取网络响应Response数据的方法!(重要)
原文:分享非常有用的Java程序(关键代码)(八)---Java InputStream读取网络响应Response数据的方法!(重要) Java InputStream读取数据问题 ======== ...
随机推荐
- vim下缩进及高亮设置
1.配置文件的位置 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效.而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc” ...
- F - Wormholes
题目大意: 农民约翰在农场散步的时候发现农场有大量的虫洞,这些虫洞是非常特别的因为它们都是单向通道,为了方便现在把约翰的农田划分成N快区域,M条道路,W的虫洞. 约翰是时空旅行的粉丝,他希望这样做,在 ...
- Windows下svn客户端和服务器的安装使用
svn,全称subversion, 是目前用的较多的开源的版本管理工具.相信有些经历的程序员应该都听说过它. 通常的svn服务器是搭建在Linux中,不过如果作为个人或者单个小组使用的话,就可以把sv ...
- FC和SCSI
IDE(Integrated Drive Electronics)即"电子集成驱动器",它的本意是指把"硬盘控制器"与"盘体"集成在一起的硬 ...
- oracle 32位和64位的问题
- android开发launcher
1. launcher是桌面应用程序 一. android.intent.category.LAUNCHER与android.intent.category.HOME的差别? android ...
- git的一些概念和技巧
1. 分支代表最后三个commit(即HEAD, HEAD^和HEAD~2),前一个commit,也用HEAD~1 2. 查看一个文件的改动历史git log (--pretty=oneline) - ...
- linux的文本管道连接处理技巧
举例1: strace -f -e open cpp Hello.cpp -o /dev/null 2>&1 | grep -v ENOENT | awk '{print $3}' 1) ...
- 《Android开发艺术探索》读书笔记 (3) 第3章 View的事件体系
本节和<Android群英传>中的第五章Scroll分析有关系,建议先阅读该章的总结 第3章 View的事件体系 3.1 View基本知识 (1)view的层次结构:ViewGroup也是 ...
- Sql语句 不支持中文 国外数据库
由于老美的不支持中文 SQL 语句第一:字段类型改为nvarchar,ntext 第二:强制转化 N update dbo.Role set rolename=N'普通用户' update dbo.T ...