首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 收集java的常用函数代码!大家分享,共同学习! [已结帖,结帖人:jdlsfl]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jdlsfl
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-07-01 23:53:41 楼主
    收集java的常用函数代码!大家分享,共同学习!
    300  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • java2000_net_test
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-01 23:53:431楼 得分:0
    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jdlsfl】截止到2008-07-01 23:53:51的历史汇总数据(不包括此帖):
    发帖的总数量:52                      发帖的总分数:2494                   
    结贴的总数量:52                      结贴的总分数:2494                   
    无满意结贴数:0                        无满意结贴分:0                       
    未结的帖子数:0                        未结的总分数:0                       
    结贴的百分比:100.00%              结分的百分比:100.00%                 
    无满意结贴率:0.00  %              无满意结分率:0.00  %                 
    敬礼!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhj92lxs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-01 23:55:032楼 得分:1
    好,支持
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cursor_wang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 00:04:413楼 得分:1
    当然要支持!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yami251139
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 00:08:364楼 得分:2
    靠。。。。
    你好歹自己带个头,搞2个坐坐样子杂。。。。
    ==========================
    纯java的?
    trim
    q.append
    for(){}
    while(){}
    substring
    replaceall
    lookup
    rs.next
    xxx.parseInt
    new算不算。。。
    xxx.valueof
    smipleformatdate算么。。。
    xxx.equals
    xxx.tostring
    sum
    max
    min
    avg
    *@&#@%(……@#(*……@¥()
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ilysony
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 00:39:485楼 得分:2
    纯J2SE的话
    for(int i=0;i <xxx;i++)
    Iterator it = xx.iterator();
    XXX x = new XXX();
    xxx.split();
    xxx.equals();
    xxx.tostring();
    xxx.getXxx(x);
    xxx.setXxx(x);
    xxx = Xxx.parseXxx();

    trim()
    .append()

    想不起来了... - -
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jdlsfl
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 01:07:306楼 得分:0
    不好意思,刚才去收集代码了,哈哈
    还是谢谢各位
    我的本意是实际项目中可以用的常用函数代码(不在保密范围之内的)
    当然提供原始的代码大家温习一下也是可以的

    先贴几个代码
    Java code
    /** * 将某个日期以固定格式转化成字符串 * * @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; }



    Java code
    /** * 判断任意一个整数是否素数 * * @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; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jdlsfl
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 01:09:357楼 得分:0
    Java code
    /** * 获得任意一个整数的阶乘,递归 * * @param n * @return n! */ public static int factorial(int n) { if (n == 1) { return 1; } return n * factorial(n - 1); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jdlsfl
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 01:12:528楼 得分:0
    Java code
    /** * 将指定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(""); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • coolhty
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 01:46:489楼 得分:1
    wait();//线程等待
    notify();//激活一个线程
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • java2000_net
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      2

    发表于:2008-07-02 06:44:0610楼 得分:30
    我一直在用的一个字符串类库,自己写的。用了很多年
    Java code
    package net.java2000.tools; /** * Title: Java Bean 工具 * Description: * Copyright: Copyright (c) 2001 * Company: JAVA世纪网 http://www.java2000.net * @author 赵学庆 * @version 1.0 */ import java.util.*; import java.util.regex.Pattern; public class StrTools { /** * 分割字符串 * * @param str String 原始字符串 * @param splitsign String 分隔符 * @return String[] 分割后的字符串数组 */ @SuppressWarnings("unchecked") public static String[] split(String str, String splitsign) { int index; if (str == null || splitsign == null) return null; ArrayList al = new ArrayList(); while ((index = str.indexOf(splitsign)) != -1) { al.add(str.substring(0, index)); str = str.substring(index + splitsign.length()); } al.add(str); return (String[]) al.toArray(new String[0]); } /** * 替换字符串 * * @param from String 原始字符串 * @param to String 目标字符串 * @param source String 母字符串 * @return String 替换后的字符串 */ public static String replace(String from, String to, String source) { if (source == null || from == null || to == null) return null; StringBuffer bf = new StringBuffer(""); int index = -1; while ((index = source.indexOf(from)) != -1) { bf.append(source.substring(0, index) + to); source = source.substring(index + from.length()); index = source.indexOf(from); } bf.append(source); return bf.toString(); } /** * 替换字符串,能能够在HTML页面上直接显示(替换双引号和小于号) * * @param str String 原始字符串 * @return String 替换后的字符串 */ public static String htmlencode(String str) { if (str == null) { return null; } return replace("\"", "&quot;", replace("<", "&lt;", str)); } /** * 替换字符串,将被编码的转换成原始码(替换成双引号和小于号) * * @param str String * @return String */ public static String htmldecode(String str) { if (str == null) { return null; } return replace("&quot;", "\"", replace("&lt;", "<", str)); } private static final String _BR = "<br/>"; /** * 在页面上直接显示文本内容,替换小于号,空格,回车,TAB * * @param str String 原始字符串 * @return String 替换后的字符串 */ public static String htmlshow(String str) { if (str == null) { return null; } str = replace("<", "&lt;", str); str = replace(" ", "&nbsp;", str); str = replace("\r\n", _BR, str); str = replace("\n", _BR, str); str = replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;", str); return str; } /** * 返回指定字节长度的字符串 * * @param str String 字符串 * @param length int 指定长度 * @return String 返回的字符串 */ public static String toLength(String str, int length) { if (str == null) { return null; } if (length <= 0) { return ""; } try { if (str.getBytes("GBK").length <= length) { return str; } } catch (Exception ex) { } StringBuffer buff = new StringBuffer(); int index = 0; char c; length -= 3; while (length > 0) { c = str.charAt(index); if (c < 128) { length--; } else { length--; length--; } buff.append(c); index++; } buff.append("..."); return buff.toString(); } /** * 判断是否为整数 * * @param str 传入的字符串 * @return 是整数返回true,否则返回false */ public static boolean isInteger(String str) { Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); return pattern.matcher(str).matches(); } /** * 判断是否为浮点数,包括double和float * * @param str 传入的字符串 * @return 是浮点数返回true,否则返回false */ public static boolean isDouble(String str) { Pattern pattern = Pattern.compile("^[-\\+]?[.\\d]*$"); return pattern.matcher(str).matches(); } /** * 判断输入的字符串是否符合Email样式. * * @param str 传入的字符串 * @return 是Email样式返回true,否则返回false */ public static boolean isEmail(String str) { Pattern pattern = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"); return pattern.matcher(str).matches(); } /** * 判断输入的字符串是否为纯汉字 * * @param str 传入的字符窜 * @return 如果是纯汉字返回true,否则返回false */ public static boolean isChinese(String str) { Pattern pattern = Pattern.compile("[\u0391-\uFFE5]+$"); return pattern.matcher(str).matches(); } /** * 是否为空白,包括null和"" * * @param str * @return */ public static boolean isBlank(String str) { return str == null || str.trim().length() == 0; } /** * 判断是否为质数 * * @param x * @return */ public static boolean isPrime(int x) { if (x <= 7) { if (x == 2 || x == 3 || x == 5 || x == 7) return true; } int c = 7; if (x % 2 == 0) return false; if (x % 3 == 0) return false; if (x % 5 == 0) return false; int end = (int) Math.sqrt(x); while (c <= end) { if (x % c == 0) { return false; } c += 4; if (x % c == 0) { return false; } c += 2; if (x % c == 0) { return false; } c += 4; if (x % c == 0) { return false; } c += 2; if (x % c == 0) { return false; } c += 4; if (x % c == 0) { return false; } c += 6; if (x % c == 0) { return false; } c += 2; if (x % c == 0) { return false; } c += 6; } return true; } public static void main(String[] args) { String[] numbers = { "12345", "-12345", "123.45", "-123.45", ".12345", "-.12345", "a12345", "12345a", "123.a45" }; for (String str : numbers) { System.out.println(str + "=" + isInteger(str) + " " + isDouble(str)); } String[] emails = { "1@2.com", "1.2@3.com", "1@3.4.5.com" }; for (String str : emails) { System.out.println(str + "=" + isEmail(str)); } String[] chineses = { "中国", "1中国", "中国1", "1中国2", "中1国" }; for (String str : chineses) { System.out.println(str + "=" + isChinese(str)); } } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • KOOK_OKKO
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 07:03:4211楼 得分:1
    MARK!!!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • phoenix_dt
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 07:28:4312楼 得分:1
    学习一下!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • phoenix_dt
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 07:30:4913楼 得分:1
    支持一下!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dadi5566
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 08:50:4514楼 得分:1
    支持
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • thinkhejie
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:02:4915楼 得分:0
    有没有java 连接 各种数据库的函数 sql  甲骨文  mysql 等,比如传个连接字符串给函数 就能获取数据库连接了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • havelock
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:15:0516楼 得分:0
    引用 15 楼 thinkhejie 的回复:
    有没有java 连接 各种数据库的函数 sql  甲骨文  mysql 等,比如传个连接字符串给函数 就能获取数据库连接了。


    顶,我这有一份,找找。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • havelock
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:15:5917楼 得分:0
    一些工具类似乎帖上来的话比较占页面哦??
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • our651
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:16:2818楼 得分:5
    引用 15 楼 thinkhejie 的回复:
    有没有java 连接 各种数据库的函数 sql  甲骨文  mysql 等,比如传个连接字符串给函数 就能获取数据库连接了。


    Java code
    /* * 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

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • havelock
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:21:2219楼 得分:5
    引用 15 楼 thinkhejie 的回复:
    有没有java 连接 各种数据库的函数 sql  甲骨文  mysql 等,比如传个连接字符串给函数 就能获取数据库连接了。

    没注释,小东西,地球人都能看懂吧?

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;

    public class ConnectDB {
    private static final String MYSQL = "jdbc:mysql://";

    private static final String ORACLE = "jdbc:oracle:thin:@";

    private ConnectDB() {
    }

    public static Connection getInstance(String DBType, String url)
    throws NoSuchDBException, SQLException {
    if ("mysql".equalsIgnoreCase(DBType))
    return getMySqlConn(url);
    if ("oracle".equalsIgnoreCase(DBType))
    return getOracleConn(url);
    return null;
    }

    public static void closeConn(Connection conn) {
    if (conn != null) {
    try {
    conn.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }

    private static Connection getMySqlConn(String url) throws SQLException {
    Connection conn = null;
    try {
    Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    conn = DriverManager.getConnection(MYSQL + url, "root", "root");

    return conn;
    }

    private static Connection getOracleConn(String url) throws SQLException {
    Connection conn = null;
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    conn = DriverManager.getConnection(ORACLE + url, "scott", "tiger");

    return conn;
    }
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sssxwz
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:22:0020楼 得分:5
    Java code
    /** * 人民币转成大写 * * @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; // 返回正确表示 }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • herowzz
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:23:2421楼 得分:3
    Java code
    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; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • havelock
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:23:5122楼 得分:0
    另外问一下几个红星的~~
    FF下不能粘源代码哇??点了没反应哎。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • havelock
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:25:0523楼 得分:0
    18楼的,你那似乎是台湾淘的?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sssxwz
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:39:1324楼 得分:1
    Java code
    /** * 全角字符转半角字符 * * @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; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wargrey
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:43:4825楼 得分:0
    不是java的能不能发,至少可以给点启发
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sssxwz
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:44:0726楼 得分:1
    Java code
    /** * 去掉字符串中重复的子字符串 * * @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); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • craky
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:46:2627楼 得分:3
    Java code
    /** * 设置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); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • craky
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:48:3228楼 得分:2
    Java code
    /** * 根据指定方法的参数去构造一个新的对象的拷贝并将他返回 * @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(0, 1).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; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wargrey
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:49:4829楼 得分:3
    我的异常处理类,很基础英文注释

    Java code
    /** * (#)ThrowableManager.java 1.0 Apr 10, 2008 * * Copyright 2007- wargrey , Inc. All rights are reserved. */ package net.wargrey.application; import java.awt.Component; import javax.swing.JOptionPane; /** * This class <code>ExceptionManager</code> and its subclasses are a form of * <code>Exception</code>. It is used to wrap all the <code>Throwable</code> instances * and handle them in a unified way. It will show the information which consists of * StackTraces and Messages by using JOptionPanel. * * @author Estelle * @version 1.0 * @see java.lang.Exception * @since jdk 1.5 */ public class ExceptionManager extends Exception { /** * This field <code>alerter</code> is used to show the information the Class offered. * * @see javax.swing.JOptionPane */ private JOptionPane alerter; /** * This static method create an instance of the ExceptionManager by invoking the * constructor <code>ExceptionManager(String msg)</code>. * * @param msg The message will pass the specified constructor * @return An instance of the ExceptionManager created by invoking the constructor * <code>ExceptionManager(String msg)</code>. */ public static ExceptionManager wrap(String msg){ return new ExceptionManager(msg); } /** * This static method create an instance of the ExceptionManager by invoking the * constructor <code>ExceptionManager(Throwable throwable)</code>. * * @param throwable The cause will pass the specified constructor * @return An instance of the ExceptionManager created by invoking the constructor * <code>ExceptionManager(Throwable throwable)</code>. */ public static ExceptionManager wrap(Throwable throwable){ return new ExceptionManager(throwable); } /** * This static method create an instance of the ExceptionManager by invoking the * constructor <code>ExceptionManager(String msg,Throwable throwable)</code>. * * @param msg The message will pass the specified constructor * @param throwable The cause will pass the specified constructor * @return An instance of the ExceptionManager created by invoking the constructor * <code>ExceptionManager(String msg, Throwable throwable)</code> */ public static ExceptionManager wrap(String msg,Throwable throwable){ return new ExceptionManager(msg,throwable); } /** * Constructs a new instance with the specified detail message. The concrete handler * is its super class. This constructor always used to construct a custom exception * not wrapping the exist exception. * * @param msg the detail message which is the part of the information will be * shown. */ public ExceptionManager(String msg){ super(msg); } /** * Constructs a new instance with the specified detail cause. The concrete handler * is its super class. This constructor always used to wrap an exist exception. * * @param throwable the cause which has been caught. It's detail message and * stacktrace are the parts the information will be shown. */ public ExceptionManager(Throwable throwable){ super(throwable); } /** * Constructs a new instance with the specified detail message and cause. The * concrete handler is its super class. This constructor always used to construct * an exception wrapping the exist exception but requires a custom message. * * @param msg the detail message which is the part of the information will * be shown. * @param throwable the cause which has been caught. It's stacktrace is the parts * the information will be shown. */ public ExceptionManager(String msg,Throwable throwable){ super(msg,throwable); } /** * Show the information with everything is default. */ public synchronized void alert(){ alert((Component)null); } /** * Show the information in a dialog with the specified title * "ThrowableManager Alerter". The dialog belongs to the given component which * default is the screen. * * @param parent The component cause the exception. */ public synchronized void alert(Component parent){ alert(parent,"ThrowableManager Alerter"); } /** * Show the information in a dialog with the specified title. * * @param title The title of the dialog. */ public synchronized void alert(String title){ alert((Component)null,title); } /** * Show the information in a dialog which has the specified title and belongs to the * specified component. * * @param parent The component cause the exception. * @param title The title of the dialog. */ public synchronized void alert(Component parent,String title){ StringBuilder errorMessage=new StringBuilder(); errorMessage.append(this.toString()); for (StackTraceElement st:((this.getCause()==null)?this:this.getCause()).getStackTrace()){ errorMessage.append("\n\t at "); errorMessage.append(st.toString()); } alerter.showMessageDialog(parent, errorMessage, title ,JOptionPane.ERROR_MESSAGE); } }



    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • craky
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:51:3730楼 得分:3
    没写注释,跑起来了自己看哈
    Java code
    import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Action; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; public class ToolTipCtrl { private static boolean flag = true; public static void main(String[] args) { JFrame frame = new JFrame(); final JButton btnSH = new JButton("Show or Hide"); final JButton btnS = new JButton("Show Only"); btnSH.setToolTipText(btnSH.getText()); btnS.setToolTipText(btnS.getText()); frame.add(btnSH, BorderLayout.WEST); frame.add(btnS, BorderLayout.EAST); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 100); frame.setLocationRelativeTo(null); frame.setVisible(true); btnSH.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(flag) { postToolTip(btnSH); } else { hideToolTip(btnSH); } flag = !flag; } }); btnS.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { postToolTip(btnS); } }); } public static void postToolTip(JComponent comp) { Action action = comp.getActionMap().get("postTip"); if(action != null) { ActionEvent ae = new ActionEvent(comp, ActionEvent.ACTION_PERFORMED, "postTip", EventQueue.getMostRecentEventTime(), 0); action.actionPerformed(ae); } } public static void hideToolTip(JComponent comp) { Action action = comp.getActionMap().get("hideTip"); if(action != null) { ActionEvent ae = new ActionEvent(comp, ActionEvent.ACTION_PERFORMED, "hideTip", EventQueue.getMostRecentEventTime(), 0); action.actionPerformed(ae); } } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wolfgang_l
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:55:3831楼 得分:0
    学习一下,谢谢各位了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wargrey
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 09:57:2932楼 得分:3
    一些公共函数

    Java code
    //过滤特殊字符 public static String encoding(String src){ if (src==null) return ""; StringBuilder result=new StringBuilder(); if (src!=null){ src=src.trim(); for (int pos=0;pos<src.length();pos++){ switch(src.charAt(pos)){ case '\"':result.append("&quot;");break; case '<':result.append("&lt;");break; case '>':result.append("&gt;");break; case '\'':result.append("&apos;");break; case '&':result.append("&amp;");break; case '%':result.append("&pc;");break; case '_':result.append("&ul;");break; case '#':result.append("&shap;");break; case '?':result.append("&ques;");break; default:result.append(src.charAt(pos));break; } } } return result.toString(); } //反过滤特殊字符 public static String decoding(String src){ if (src==null) return ""; String result=src; result=result.replace("&quot;", "\"").replace("&apos;", "\'"); result=result.replace("&lt;", "<").replace("&gt;", ">"); result=result.replace("&amp;", "&"); result=result.replace("&pc;", "%").replace("&ul", "_"); result=result.replace("&shap;", "#").replace("&ques", "?"); return result; } //利用反射调用一个继承层次上的函数族,比如安装程序,有安装数据库的,安装文件系统的等,命名均已“install”开始,你就可以将参数part设为“install”,src是其实类实例,root是终止父类 public static <T> void invokeMethods(String part,T src,Class root) throws ExceptionManager{ if (root!=null){ if (!root.isInstance(src))return; root=(Class)root.getGenericSuperclass(); } HashMap<String,Method> invokees=new HashMap<String,Method>(); Class target=src.getClass(); do{ Method [] methods=target.getDeclaredMethods(); for (Method method:methods){ String mn=method.getName(); Boolean isPass=mn.startsWith(part); if (isPass){ Integer nopt=method.getParameterTypes().length; Boolean isStatic=Modifier.isStatic(method.getModifiers()); if ((nopt==0)&&(!isStatic)){ if (!invokees.containsKey(mn)) invokees.put(mn, method); } } } target=(Class)target.getGenericSuperclass(); }while(target!=root); Iterator<String> methods=invokees.keySet().iterator(); while (methods.hasNext()){ Method invokee=invokees.get(methods.next()); Boolean access=invokee.isAccessible(); invokee.setAccessible(true); try { invokee.invoke(src); } catch (InvocationTargetException e) { throw ExceptionManager.wrap(e.getTargetException()); }catch (Exception e){} invokee.setAccessible(access); } }

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • metsys
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:00:5133楼 得分:0
    Sign.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zidasine
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:01:0034楼 得分:3
    收藏的数据库联接,csdn上的
    Java code
    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);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhj92lxs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:01:0635楼 得分:0
    此贴应该精华
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • craky
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:03:0136楼 得分:0
    在Java里很不习惯“函数”这个称呼
    方法的天下~~~~~~~~~~~~~~~~~~~~~~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jdlsfl
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:22:5437楼 得分:0
    引用 36 楼 craky 的回复:
    在Java里很不习惯“函数”这个称呼
    方法的天下~~~~~~~~~~~~~~~~~~~~~~~~


    我现在改不了标题了,java里应该是方法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dinglinhu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:30:0138楼 得分:3

    支持一下搂主,写几个控制小数点的几个常用方法:

    Java code
    import java.text.DecimalFormat; public class NumberUtil { public static double decimalFormatD(int num, double d){ String format = "0."; String result = ""; double db; for(int i=0;i<num;i++) format = format.concat("0"); DecimalFormat decimal = new DecimalFormat(format); result = decimal.format(d); db = Double.parseDouble(result); return db; } public static float decimalFormatF(int num, float f){ String format = "0."; String result = ""; float fl; for(int i=0;i<num;i++) format = format.concat("0"); DecimalFormat decimal = new DecimalFormat(format); result = decimal.format(f); fl = Float.parseFloat(result); return fl; } public static String doubleToString(double f){ String s = ""; double a = 0; while(f >= 1) { a = f%((double)10); s = String.valueOf((int)a) + s; f=(f - a)/10; } return s; } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ldy214
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:31:1539楼 得分:1
    用一个for循环打印九九乘法表
    Java code
    /** *一个for循环打印九九乘法表 */ public void nineNineMultiTable() { for (int i = 1,j = 1; j <= 9; i++) { System.out.print(i+"*"+j+"="+i*j+" "); if(i==j) { i=0; j++; System.out.println(); } } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ldy214
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:39:5140楼 得分:1

    jdbc连接sql server
    Java code
    package util; import java.sql.*; public class JdbcUtil { public static void close(Statement st, Connection con) { try { st.close(); }catch(Exception e) { } try { con.close(); }catch(Exception e) { } } public static void close(ResultSet rs, Statement st, Connection con) { try { rs.close(); }catch(Exception e) { } close(st, con); } public static Connection getConnection() throws Exception { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); return DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db", "sa", "54321"); } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wargrey
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:40:4341楼 得分:0
    引用 36 楼 craky 的回复:
    在Java里很不习惯“函数”这个称呼
    方法的天下~~~~~~~~~~~~~~~~~~~~~~~~


    我只把“静态方法”称为“函数”
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • serryzhao
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:41:3442楼 得分:0
    精华帖,学习了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Even__Chung
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:50:2343楼 得分:0
    这里都是好帖!!!
    顶起!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangkai08111
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:50:3444楼 得分:1
    连接mysql。
    Class.forName("com.jdbc.mysql.Driver");
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:数据库名称?user='root'&password='root'");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from table1");
    while(rs.next) {
    }
    刚学会杂连。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ldy214
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:51:0645楼 得分:3
    简单的txt转换xml

    Java code
    package com.liu; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.util.StringTokenizer; public class TxtToXml { private String strTxtFileName; private String strXmlFileName; public TxtToXml() { strTxtFileName = new String(); strXmlFileName = new String(); } public void createXml(String strTxt, String strXml) { strTxtFileName = strTxt; strXmlFileName = strXml; String strTmp; try { BufferedReader inTxt = new BufferedReader(new FileReader( strTxtFileName)); BufferedWriter outXml = new BufferedWriter(new FileWriter( strXmlFileName)); outXml.write("<?xml version= \"1.0\" encoding=\"gb2312\"?>"); outXml.newLine(); outXml.write("<people>"); while ((strTmp = inTxt.readLine()) != null) { StringTokenizer strToken = new StringTokenizer(strTmp, ""); String arrTmp[]; arrTmp = new String[3]; for (int i = 0; i < 3; i++) arrTmp[i] = new String(""); int index = 0; outXml.newLine(); outXml.write(" <students>"); while (strToken.hasMoreElements()) { strTmp = (String) strToken.nextElement(); strTmp = strTmp.trim(); arrTmp[index++] = strTmp; } outXml.newLine(); outXml.write(" <name>" + arrTmp[0] + "</name>"); outXml.newLine(); outXml.write(" <sex>" + arrTmp[1] + "</sex>"); outXml.newLine(); outXml.write(" <age>" + arrTmp[2] + "</age>"); outXml.newLine(); outXml.write(" </students>"); } outXml.newLine(); outXml.write("</people>"); outXml.flush(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { String txtName = "testtxt.txt"; String xmlName = "testxml.xml"; TxtToXml thisClass = new TxtToXml(); thisClass.createXml(txtName, xmlName); } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chuailong
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:52:1346楼 得分:0
    收藏
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jing61281125
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:52:5947楼 得分:0
    好东西,mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qinqinhao
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:58:5748楼 得分:0
    ding
    ding
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lschou520
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 10:59:2049楼 得分:2
    Java code
    /** * 写入日志 * filePath 日志文件的路径 * code 要写入日志文件的内容 */ public static boolean print(String filePath,String code) { try { File tofile=new File(filePath); FileWriter fw=new FileWriter(tofile,true); BufferedWriter bw=new BufferedWriter(fw); PrintWriter pw=new PrintWriter(bw); System.out.println(getDate()+":"+code); pw.println(getDate()+":"+code); pw.close(); bw.close(); fw.close(); return true; } catch (IOException e) { return false; } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lschou520
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 11:00:2550楼 得分:2
    Java code
    /** * 判断是不是合法手机 * handset 手机号码 */ public static boolean isHandset(String handset) { try { if(!handset.substring(0,1).equals("1")) { return false; } if (handset==null || handset.length()!=11) { return false; } String check = "^[0123456789]+$"; Pattern regex = Pattern.compile(check); Matcher matcher = regex.matcher(handset); boolean isMatched = matcher.matches(); if(isMatched) { return true; } else { return false; } } catch (RuntimeException e) { return false; } } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lschou520
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 11:01:2451楼 得分:2
    Java code
    字符串匹配的算法. public String getMaxMatch(String a,String b) { StringBuffer tmp = new StringBuffer(); String maxString = ""; int max = 0; int len = 0; char[] aArray = a.toCharArray(); char[] bArray = b.toCharArray(); int posA = 0; int posB = 0; while(posA<aArray.length-max) { posB = 0; while(posB<(bArray.length-max)) { if(aArray[posA]==bArray[posB]) { len = 1; tmp = new StringBuffer(); tmp.append(aArray[posA]); while((posA+len<aArray.length)&&(posB+len<bArray.length)&&(aArray[posA+len]==bArray[posB+len])) { tmp.append(aArray[posA+len]); len++; } if(len>max) { max = len; maxString = tmp.toString(); } } posB++; } posA++; } return maxString; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bao110908
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      4

    发表于:2008-07-02 11:25:5952楼 得分:10
    时间计算

    Java code
    public class Test { public static void main(String[] args) { Time t1 = new Time(1, 11, 32, 18); Time t2 = new Time(16, 58, 18); System.out.println(" t1: " + t1); System.out.println(" t2: " + t2); System.out.println("t1-t2: " + t1.subtractTime(t2)); System.out.println("t1+t2: " + t1.addTime(t2)); Time t3 = new Time("13:22:44"); System.out.println(" t3: " + t3); Time t4 = new Time("16-58-18", "-"); System.out.println(" t4: " + t4); System.out.println("t2==t4? " + t2.equals(t4)); } }


    Java code
    import java.text.DecimalFormat; import java.util.Arrays; /** * 时间计算工具类 */ public class Time { /** * 时间字段常量,表示“秒” */ public final static int SECOND = 0; /** * 时间字段常量,表示“分” */ public final static int MINUTE = 1; /** * 时间字段常量,表示“时” */ public final static int HOUR = 2; /** * 时间字段常量,表示“天” */ public final static int DAY = 3; /** * 各常量允许的最大值 */ private final int[] maxFields = { 59, 59, 23, Integer.MAX_VALUE - 1 }; /** * 各常量允许的最小值 */ private final int[] minFields = { 0, 0, 0, Integer.MIN_VALUE }; /** * 默认的字符串格式时间分隔符 */ private String timeSeparator = ":"; /** * 时间数据容器 */ private int[] fields = new int[4]; /** * 无参构造,将各字段置为 0 */ public Time() { this(0, 0, 0, 0); } /** * 使用时、分构造一个时间 * @param hour 小时 * @param minute 分钟 */ public Time(int hour, int minute) { this(0, hour, minute, 0); } /** * 使用时、分、秒构造一个时间 * @param hour 小时 * @param minute 分钟 * @param second 秒 */ public Time(int hour, int minute, int second) { this(0, hour, minute, second); } /** * 使用一个字符串构造时间<br/> * Time time = new Time("14:22:23"); * @param time 字符串格式的时间,默认采用“:”作为分隔符 */ public Time(String time) { this(time, null); } /** * 使用天、时、分、秒构造时间,进行全字符的构造 * @param day 天 * @param hour 时 * @param minute 分 * @param second 秒 */ public Time(int day, int hour, int minute, int second) { set(DAY, day); set(HOUR, hour); set(MINUTE, minute); set(SECOND, second); } /** * 使用一个字符串构造时间,指定分隔符<br/> * Time time = new Time("14-22-23", "-"); * @param time 字符串格式的时间 */ public Time(String time, String timeSeparator) { if(timeSeparator != null) { setTimeSeparator(timeSeparator); } String pattern = patternQuote(this.timeSeparator); String matcher = new StringBuffer() .append("\\d+?").append(pattern) .append("\\d+?").append(pattern) .append("\\d+?") .toString(); if(!time.matches(matcher)) { throw new IllegalArgumentException(time + ", time format error, HH" + this.timeSeparator + "mm" + this.timeSeparator + "ss"); } String[] times = time.split(pattern); set(DAY, 0); set(HOUR, Integer.parseInt(times[0])); set(MINUTE, Integer.parseInt(times[1])); set(SECOND, Integer.parseInt(times[2])); } /** * 设置时间字段的值 * @param field 时间字段常量 * @param value 时间字段的值 */ public void set(int field, int value) { if(value < minFields[field]) { throw new IllegalArgumentException(value + ", time value must be positive."); } fields[field] = value % (maxFields[field] + 1); // 进行进位计算 int carry = value / (maxFields[field] + 1); if(carry > 0) { int upFieldValue = get(field + 1); set(field + 1, upFieldValue + carry); } } /** * 获得时间字段的值 * @param field 时间字段常量 * @return 该时间字段的值 */ public int get(int field) { if(field < 0 || field > fields.length - 1) { throw new IllegalArgumentException(field + ", field value is error."); } return fields[field]; } /** * 将时间进行“加”运算,即加上一个时间 * @param time 需要加的时间 * @return 运算后的时间 */ public Time addTime(Time time) { Time result = new Time(); int up = 0; // 进位标志 for (int i = 0; i < fields.length; i++) { int sum = fields[i] + time.fields[i] + up; up = sum / (maxFields[i] + 1); result.fields[i] = sum % (maxFields[i] + 1); } return result; } /** * 将时间进行“减”运算,即减去一个时间 * @param time 需要减的时间 * @return 运算后的时间 */ public Time subtractTime(Time time) { Time result = new Time(); int down = 0; // 退位标志 for (int i = 0, k = fields.length - 1; i < k; i++) { int difference = fields[i] + down; if (difference >= time.fields[i]) { difference -= time.fields[i]; down = 0; } else { difference += maxFields[i] + 1 - time.fields[i]; down = -1; } result.fields[i] = difference; } result.fields[DAY] = fields[DAY] - time.fields[DAY] + down; return result; } /** * 获得时间字段的分隔符 * @return */ public String getTimeSeparator() { return timeSeparator; } /** * 设置时间字段的分隔符(用于字符串格式的时间) * @param timeSeparator 分隔符字符串 */ public void setTimeSeparator(String timeSeparator) { this.timeSeparator = timeSeparator; } /** * 正则表达式引用处理方法,源自 JDK @link java.util.regex.Pattern#quote(String) */ private String patternQuote(String s) { int slashEIndex = s.indexOf("\\E"); if (slashEIndex == -1) return "\\Q" + s + "\\E"; StringBuilder sb = new StringBuilder(s.length() * 2); sb.append("\\Q"); slashEIndex = 0; int current = 0; while ((slashEIndex = s.indexOf("\\E", current)) != -1) { sb.append(s.substring(current, slashEIndex)); current = slashEIndex + 2; sb.append("\\E\\\\E\\Q"); } sb.append(s.substring(current, s.length())); sb.append("\\E"); return sb.toString(); } public String toString() { DecimalFormat df = new DecimalFormat("00"); return new StringBuffer().append(fields[DAY]).append(", ") .append(df.format(fields[HOUR])).append(timeSeparator) .append(df.format(fields[MINUTE])).append(timeSeparator) .append(df.format(fields[SECOND])) .toString(); } public int hashCode() { final int PRIME = 31; int result = 1; result = PRIME * result + Arrays.hashCode(fields); return result; } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final Time other = (Time) obj; if (!Arrays.equals(fields, other.fields)) { return false; } return true; } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bao110908
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      4

    发表于:2008-07-02 11:37:1053楼 得分:5
    ISBN(国际标准书号)的校验

    Java code
    public class Test { public static void main(String[] args) { System.out.println("9787302155638 " + ISBN.checkISBN("9787302155638")); System.out.println("7564105607 " + ISBN.checkISBN("7564105607")); System.out.println("730213880X " + ISBN.checkISBN("730213880X")); System.out.println("7302138800 " + ISBN.checkISBN("7302138800")); System.out.println("9790000000000 " + ISBN.checkISBN("9790000000000")); try { System.out.println(ISBN.checkISBN("9770000000000")); }catch(Exception e) { System.out.println("9770000000000 " + e.getMessage()); } try { System.out.println(ISBN.checkISBN("123456545")); }catch(Exception e) { System.out.println("123456545 " + e.getMessage()); } } }


    Java code
    public final class ISBN { /** * 根据输入的ISBN号,检验ISBN的有效性。依据 GB/T 5795-2006 和 ISO 2108:2005 ISBN * 10位标准和13位标准实现(13位标准自2007年1月1日开始实行,在此之前采用10位标准)。 * * @param String isbn:需要进行校验的ISBN字符串 * @return true:所输入的ISBN校验正确;<br/> false:所输入的ISBN校验错误 */ public static boolean checkISBN(String isbn) { int count = 0; int checkBitInt = 0; // 将ISBN数据全取大写字母 //isbn = isbn.toUpperCase(); char[] cs = isbn.toCharArray(); switch (isbn.length()) { case 10: // **************************************************************** // 当ISBN为10位时,进行的校验,用于2007年1月1日前的出版物 // 数据格式:从左至右前9位为ISBN数据,第10位为校验位 // 校验方法: // (1) 从左至右将前9位数据从10开始至2进行编号,作为位权 // (2) 将9位数据与各位位权进行加权,并求其9位和(称为加权和,记作M) // (3) 第10位校验位计算方法,校验位为C: // M + C ≡ 0 (mod 11) // C为10时,记作“X” // **************************************************************** // 取出前9位数字进行加权和计算 for (int i = 0; i < 9; i++) { // 若前9位数据中有非数字字符,则抛出异常 if (cs[i] < '0' || cs[i] > '9') { throw new ISBNFormatException("ISBN " + isbn + "" + (i + 1) + " 位中出现非法字符 " + cs[i]); } int c = cs[i] - '0'; // 求加权和 count += c * (10 - i); } // 取出校验位数据0~9和X符合校验字符要求 if (cs[9] >= '0' && cs[9] <= '9') { checkBitInt = cs[9] - '0'; } else if (cs[9] == 'X' || cs[9] == 'x') { // 校验位中的“X”表示数据“10” checkBitInt = 10; } else { // 非0~9或X时抛出异常 throw new ISBNFormatException("ISBN " + isbn + " 第 10 位中出现非法字符 " + cs[9]); } // 进行校验 if ((count + checkBitInt) % 11 == 0) { return true; // 校验成功 } else { return false; // 校验失败 } case 13: // **************************************************************** // 当ISBN为13位时,进行的校验,用于2007年1月1日后的出版物 // 数据格式:从左至右前12位为ISBN数据,第13位为校验位 // 校验方法: // (1) 从左至右将前12位数的取其奇位数和和偶位数和 // (2) 将偶位数和乘3,并其与奇位数和的和,得加权和 // (3) 第13位校验位计算方法,校验位为C: // M + C ≡ 0 (mod 10) // **************************************************************** // ISBN为13位数据时,前3位目前只能是“978”(已实行)或“979”(暂未实行) if (!isbn.startsWith("978") && !isbn.startsWith("979")) { throw new ISBNFormatException("ISBN-13 格式不符合标准"); } // 取出前12位数字进行加权和计算 int countEven = 0; int countOdd = 0; for (int i = 0; i < 12; i++) { int c = cs[i] - '0'; // 若前12位数据中有非数字字符,则抛出异常 if (c < 0 || c > 9) { throw new ISBNFormatException("ISBN " + isbn + "" + (i + 1) + " 位中出现非法字符 " + cs[i]); } // 分别计算奇位数和偶位数的和 if ((i & 0x1) == 0) { countOdd += c; } else { countEven += c; } } // 求加权和 count = countOdd + (countEven * 3); // 取出校验位数据 if (cs[12] < '0' || cs[12] > '9') { // 校验位为非0~9字符时,抛出异常 throw new ISBNFormatException("ISBN " + isbn + " 第 13 位中出现非法字符 " + cs[12]); } checkBitInt = cs[12] - '0'; // 进行校验 if ((count + checkBitInt) % 10 == 0) { return true; // 校验成功 } else { return false; // 校验失败 } default: // ISBN为非10位或13位时抛出异常 throw new ISBNFormatException("ISBN 格式不符合标准"); } } }


    Java code
    public class ISBNFormatException extends RuntimeException { private static final long serialVersionUID = 1L; public ISBNFormatException() { super("ISBN Error ..."); } public ISBNFormatException(String arg0) { super(arg0); } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yetaodiao
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 11:41:3154楼 得分:1
    xxx.equals
    xxx.tostring
    sum
    max
    min

    ..................
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bao110908
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      4

    发表于:2008-07-02 11:45:2755楼 得分:5
    生成 JSON 字符串的工具

    Java code
    import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * JSON utility class * * @since 2008-04-21 */ public class Json { // test public static void main(String[] args) { Json json1 = new Json(); json1.add("totalCount", 2); json1.add("isTest", true); Json json_a = new Json(); json_a.add("menuid", 1); json_a.add("menuname", "testmenu"); json1.add("topics", json_a); Json json_b = new Json(); json_b.add("menuid", 2); json_b.add("menuname", "testmenu"); json1.add("topics", json_b); System.out.println(json1.toString()); } private Map map = new LinkedHashMap(); /** * 添加一个 JSON 属性,值为一个字符串,重复添加时产生数组<p/> * * add("name", "value");<br/> * 添加一个字符串,产生的 JSON 如:{"name":"value"}<p/> * * add("name", "value1");<br/> * add("name", "value2");<br/> * 添加两个同属性的字符串,产生的 JSON 如:{"name":["value1", "value2"]}<p/> * * @param key JSON 属性名 * @param str 字符串格式的属性值 */ public void add(String key, String value) { addElement(key, value); } public void add(String key, int num) { addElement(key, new Integer(num)); } public void add(String key, boolean b) { addElement(key, new Boolean(b)); } /** * 添加一个 JSON 属性,值为一个 JSON,重复添加时产生 JSON 数组<p/> * * Json json1 = new Json();<br/> * json1.add("name1", "value1");<br/> * json1.add("name2", "value2");<br/> * Json json = new Json();<br/> * json.add("message", json1);<br/> * 添加一个 JSON,产生的 JSON 如:{"message":{"name1":"value1", "name2":"value2"}}<p/> * * Json json1 = new Json();<br/> * json1.add("name1", "value1");<br/> * json1.add("name2", "value2");<br/> * Json json2 = new Json();<br/> * json2.add("name1", "value3");<br/> * json2.add("name2", "value4");<br/> * Json json = new Json();<br/> * json.add("message", json1);<br/> * json.add("message", json2);<br/> * 添加两个同属性的 JSON,产生的 JSON 如:{"message":[{"name1":"value1", "name2":"value2"}, {"name1":"value3", "name2":"value4"}]}<p/> * * @param key JSON 属性名 * @param json JSON 格式的属性值 */ public void add(String key, Json json) { addElement(key, json); } public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); int k = 0; for (Iterator i = map.keySet().iterator(); i.hasNext();) { String key = (String)(i.next()); Object obj = map.get(key); if (k > 0) { sb.append(","); } appendKey(sb, key); if (obj instanceof String) { appendString(sb, (String)obj); } else if (obj instanceof List) { appendList(sb, (List)obj); } else if (obj instanceof Json) { appendJson(sb, (Json)obj); } else { appendOther(sb, obj); } k++; } sb.append("}"); return sb.toString(); } private void addElement(String key, Object obj) { if (!map.containsKey(key)) { if(obj instanceof Json) { List list = new ArrayList(); list.add(obj); map.put(key, list); } else { map.put(key, obj); } return; } Object o = map.remove(key); if (o instanceof List) { ((List)o).add(obj); map.put(key, o); return; } // o is a String List list = new ArrayList(); list.add(o); list.add(obj); map.put(key, list); } /** * Append JSON property name * * @param sb * @param key */ private void appendKey(StringBuilder sb, String key) { sb.append("\"").append(key).append("\":"); } /** * Append JSON property value that is a String * * @param sb * @param str */ private void appendString(StringBuilder sb, String str) { sb.append("\"").append(str).append("\""); } /** * Append JSON property value that is a Integer * * @param sb * @param num */ private void appendOther(StringBuilder sb, Object obj) { sb.append(obj); } /** * Append JSON property value that is a List * * @param sb * @param list */ private void appendList(StringBuilder sb, List list) { sb.append("["); for (int j = 0, m = list.size(); j < m; j++) { if (j > 0) { sb.append(","); } Object obj = list.get(j); if (obj instanceof String) { appendString(sb, (String)obj); } else if (obj instanceof Json) { appendJson(sb, (Json)obj); } else { appendOther(sb, obj); } } sb.append("]"); } /** * Append JSON property value that is a JSON * * @param sb * @param json */ private void appendJson(StringBuilder sb, Json json) { sb.append(json.toString()); } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ChangXiangzhong
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 11:55:1756楼 得分:1
    建议搂住去看看apache-commons子项目。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zerock
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 12:27:4757楼 得分:1
    好东西,收藏
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • laorer
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 12:36:4358楼 得分:1
    引用 56 楼 ChangXiangzhong 的回复:
    建议搂住去看看apache-commons子项目。

    其实有些common里并不会包括吧,虽然会包括很多
    推荐本书
    apress - pro jakarta commons
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lschou520
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 12:38:2559楼 得分:2
    Java code
    /** * 从指定的字符串中提取Email * content 指定的字符串 */ public static String parse(String content) { String email = null; if (content==null || content.length()<1) { return email; } //找出含有@ int beginPos; int