收集java的常用函数代码!大家分享,共同学习!
收集java的常用函数代码!大家分享,共同学习!
[解决办法]
好,支持
[解决办法]
当然要支持!
[解决办法]
靠。。。。
你好歹自己带个头,搞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
*@&#@%(……@#(*……@¥()
[解决办法]
纯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()
想不起来了... - -
[解决办法]
wait();//线程等待
notify();//激活一个线程
[解决办法]
我一直在用的一个字符串类库,自己写的。用了很多年
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("\"", """, replace("<", "<", str)); } /** * 替换字符串,将被编码的转换成原始码(替换成双引号和小于号) * * @param str String * @return String */ public static String htmldecode(String str) { if (str == null) { return null; } return replace(""", "\"", replace("<", "<", 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("<", "<", str); str = replace(" ", " ", str); str = replace("\r\n", _BR, str); str = replace("\n", _BR, str); str = replace("\t", " ", 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)); } }}
[解决办法]
MARK!!!!!
[解决办法]
学习一下!!!
[解决办法]
支持一下!!!
[解决办法]
支持
[解决办法]
/** * 人民币转成大写 * * @param value * @return String */ public static String hangeToBig(double value) { char[] hunit = { '拾', '佰', '仟' }; // 段内位置表示 char[] vunit = { '万', '亿' }; // 段名表示 char[] digit = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; // 数字表示 long midVal = (long) (value * 100); // 转化成整形 String valStr = String.valueOf(midVal); // 转化成字符串 String head = valStr.substring(0, valStr.length() - 2); // 取整数部分 String rail = valStr.substring(valStr.length() - 2); // 取小数部分 String prefix = ""; // 整数部分转化的结果 String suffix = ""; // 小数部分转化的结果 // 处理小数点后面的数 if (rail.equals("00")) { // 如果小数部分为0 suffix = "整"; } else { suffix = digit[rail.charAt(0) - '0'] + "角" + digit[rail.charAt(1) - '0'] + "分"; // 否则把角分转化出来 } // 处理小数点前面的数 char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组 char zero = '0'; // 标志'0'表示出现过0 byte zeroSerNum = 0; // 连续出现0的次数 for (int i = 0; i < chDig.length; i++) { // 循环处理每个数字 int idx = (chDig.length - i - 1) % 4; // 取段内位置 int vidx = (chDig.length - i - 1) / 4; // 取段位置 if (chDig[i] == '0') { // 如果当前字符是0 zeroSerNum++; // 连续0次数递增 if (zero == '0') { // 标志 zero = digit[0]; } else if (idx == 0 && vidx > 0 && zeroSerNum < 4) { prefix += vunit[vidx - 1]; zero = '0'; } continue; } zeroSerNum = 0; // 连续0次数清零 if (zero != '0') { // 如果标志不为0,则加上,例如万,亿什么的 prefix += zero; zero = '0'; } prefix += digit[chDig[i] - '0']; // 转化该数字表示 if (idx > 0) prefix += hunit[idx - 1]; if (idx == 0 && vidx > 0) { prefix += vunit[vidx - 1]; // 段结束位置应该加上段名如万,亿 } } if (prefix.length() > 0) prefix += '圆'; // 如果整数部分存在,则有圆的字样 return prefix + suffix; // 返回正确表示 }
[解决办法]
public static String getURLByDBInfo(DBInfo dbInfo) { String url = ""; if(dbInfo.getDbType() != null) if(dbInfo.getDbType().equals("SQLSERVER")) url = (new StringBuilder("jdbc:microsoft:sqlserver://")).append(dbInfo.getDbHost()).append(":").append(dbInfo.getDbPort()).append(";DatabaseName=").append(dbInfo.getDbSID()).toString(); else if(dbInfo.getDbType().equals("ORACLE")) url = (new StringBuilder("jdbc:oracle:thin:@")).append(dbInfo.getDbHost()).append(":").append(dbInfo.getDbPort()).append(":").append(dbInfo.getDbSID()).toString(); else if(dbInfo.getDbType().equals("ORACLE_DSP")) url = (new StringBuilder("jdbc:dsp@")).append(dbInfo.getDbHost()).append(":").append(dbInfo.getDbPort()).append("/").append(dbInfo.getDbSID()).append("/").append(dbInfo.getNamespace()).toString(); else if(dbInfo.getDbType().equals("SYBASE")) url = "jdbc:sybase:Tds:..."; else url = "sun.jdbc.odbc.JdbcOdbcDriver"; return url; }
[解决办法]
/** * 全角字符转半角字符 * * @param QJStr * @return String */ public static final String QJToBJChange(String QJStr) { char[] chr = QJStr.toCharArray(); String str = ""; for (int i = 0; i < chr.length; i++) { chr[i] = (char) ((int) chr[i] - 65248); str += chr[i]; } return str; }
[解决办法]
/** * 去掉字符串中重复的子字符串 * * @param str * @return String */ private static String removeSameString(String str) { Set<String> mLinkedSet = new LinkedHashSet<String>(); String[] strArray = str.split(" "); StringBuffer sb = new StringBuffer(); for (int i = 0; i < strArray.length; i++) { if (!mLinkedSet.contains(strArray[i])) { mLinkedSet.add(strArray[i]); sb.append(strArray[i] + " "); } } System.out.println(mLinkedSet); return sb.toString().substring(0, sb.toString().length() - 1); }
[解决办法]
/** * 设置JSpinner的编辑属性 * @param spinner 目标JSpinner * @param isAllowInvalid 是否允许输入非法值 * @param isEditable 是否允许编辑 */ public static void setAllowsInvalid(JSpinner spinner, boolean isAllowInvalid, boolean isEditable) { JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner, "#"); spinner.setEditor(editor); JFormattedTextField tf = ((JSpinner.NumberEditor)spinner.getEditor()).getTextField(); tf.setEditable(isEditable); DefaultFormatterFactory factory = (DefaultFormatterFactory)tf.getFormatterFactory(); NumberFormatter formatter = (NumberFormatter)factory.getDefaultFormatter(); formatter.setAllowsInvalid(isAllowInvalid); }
[解决办法]
/** * 根据指定方法的参数去构造一个新的对象的拷贝并将他返回 * @param obj 原始对象 * @return 新对象 * @throws NoSuchMethodException * @throws InvocationTargetException * @throws IllegalAccessException * @throws InstantiationException * @throws SecurityException * @throws IllegalArgumentException */ @SuppressWarnings("unchecked") public static Object copy(Object obj) throws IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException { //获得对象的类型 Class classType = obj.getClass(); //通过默认构造方法去创建一个新的对象,getConstructor的视其参数决定调用哪个构造方法 Object objectCopy = classType.getConstructor(new Class[]{}).newInstance(new Object[]{}); //获得对象的所有属性 Field[] fields = classType.getDeclaredFields(); for(int i = 0; i < fields.length; i++) { //获取数组中对应的属性 Field field = fields[i]; String fieldName = field.getName(); String stringLetter = fieldName.substring(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; }
[解决办法]
我的异常处理类,很基础英文注释
/** * (#)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); }}
[解决办法]
没写注释,跑起来了自己看哈
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); } }}
[解决办法]
一些公共函数
//过滤特殊字符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(""");break; case '<':result.append("<");break; case '>':result.append(">");break; case '\'':result.append("'");break; case '&':result.append("&");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(""", "\"").replace("'", "\'"); result=result.replace("<", "<").replace(">", ">"); result=result.replace("&", "&"); 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); } }
[解决办法]
收藏的数据库联接,csdn上的
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);
[解决办法]
支持一下搂主,写几个控制小数点的几个常用方法:
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; }}
[解决办法]
用一个for循环打印九九乘法表
/** *一个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(); } } }
[解决办法]
jdbc连接sql server
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"); }}
[解决办法]
连接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) {
}
刚学会杂连。。。
[解决办法]
简单的txt转换xml
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); }}
[解决办法]
/** * 写入日志 * 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; } }
[解决办法]
/** * 判断是不是合法手机 * 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; } }}
[解决办法]
字符串匹配的算法. 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; }
[解决办法]
时间计算
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)); }}
[解决办法]
ISBN(国际标准书号)的校验
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()); } }}
[解决办法]
xxx.equals
xxx.tostring
sum
max
min
..................
[解决办法]
生成 JSON 字符串的工具
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()); }}
[解决办法]
建议搂住去看看apache-commons子项目。
[解决办法]
好东西,收藏
[解决办法]
/** * 从指定的字符串中提取Email * content 指定的字符串 */ public static String parse(String content) { String email = null; if (content==null || content.length()<1) { return email; } //找出含有@ int beginPos; int i; String token = "@"; String preHalf=""; String sufHalf = ""; beginPos = content.indexOf(token); if (beginPos>-1) { //前项扫描 String s = null; i= beginPos; while(i>0) { s = content.substring(i-1,i); if (isLetter(s)) preHalf = s+preHalf; else break; i--; } //后项扫描 i= beginPos+1; while( i<content.length()) { s = content.substring(i,i+1); if (isLetter(s)) sufHalf = sufHalf +s; else break; i++; } //判断合法性 email = preHalf + "@" + sufHalf; if (isEmail(email)) { return email; } } return null; } /** * 判断是不是合法Email * email Email地址 */ public static boolean isEmail(String email) { try { if (email==null || email.length()<1 || email.length()>256) { return false; } String check = "^([0-9a-zA-Z]+[_.0-9a-zA-Z-]+)@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2,3})$"; Pattern regex = Pattern.compile(check); Matcher matcher = regex.matcher(email); boolean isMatched = matcher.matches(); if(isMatched) { return true; } else { return false; } } catch (RuntimeException e) { return false; } } /** * 判断是不是合法字符 * c 要判断的字符 */ public static boolean isLetter(String c) { boolean result = false; if (c==null || c.length()<0) { return false; } //a-z if (c.compareToIgnoreCase("a")>=0 && c.compareToIgnoreCase("z")<=0) { return true; } //0-9 if (c.compareToIgnoreCase("0")>=0 && c.compareToIgnoreCase("9")<=0) { return true; } //. - _ if (c.equals(".") || c.equals("-") || c.equals("_") ) { return true; } return result; }
[解决办法]
/** * 列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤 * * @param path */ public static void list(File path) { if (!path.exists()) { System.out.println("文件名称不存在!"); } else { if (path.isFile()) { if (path.getName().toLowerCase().endsWith(".pdf") || path.getName().toLowerCase().endsWith(".doc") || path.getName().toLowerCase().endsWith(".html") || path.getName().toLowerCase().endsWith(".htm")) { System.out.println(path); System.out.println(path.getName()); } } else { File[] files = path.listFiles(); for (int i = 0; i < files.length; i++) { list(files[i]); } } } }
[解决办法]
一组日期方法
import java.text.SimpleDateFormat;import java.util.Calendar;public class DateUtil{ /** * 格式化日期 * * @param dateStr * 字符型日期 * @param format * 格式 * @return 返回日期 */ public static java.util.Date parseDate(String dateStr, String format) { java.util.Date date = null; try { java.text.DateFormat df = new java.text.SimpleDateFormat(format); String dt = dateStr.replaceAll("-", "/"); if ((!dt.equals("")) && (dt.length() < format.length())) { dt += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]", "0"); } date = (java.util.Date) df.parse(dt); } catch (Exception e) { } return date; } /** * @param dateStr * @return Date */ public static java.util.Date parseDate(String dateStr) { return parseDate(dateStr, "yyyy/MM/dd"); } /** * 格式化输出日期 * * @param date * 日期 * @param format * 格式 * @return 返回字符型日期 */ public static String format(java.util.Date date, String format) { String result = ""; try { if (date != null) { java.text.DateFormat df = new java.text.SimpleDateFormat(format); result = df.format(date); } } catch (Exception e) { } return result; } public static String format(java.util.Date date) { return format(date, "yyyy/MM/dd"); } /** * 返回年份 * * @param date * 日期 * @return 返回年份 */ public static int getYear(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.YEAR); } /** * 返回月份 * * @param date * 日期 * @return 返回月份 */ public static int getMonth(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.MONTH) + 1; } /** * 返回日份 * * @param date * 日期 * @return 返回日份 */ public static int getDay(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.DAY_OF_MONTH); } /** * 返回小时 * * @param date * 日期 * @return 返回小时 */ public static int getHour(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.HOUR_OF_DAY); } /** * 返回分钟 * * @param date * 日期 * @return 返回分钟 */ public static int getMinute(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.MINUTE); } /** * 返回秒钟 * * @param date * 日期 * @return 返回秒钟 */ public static int getSecond(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.SECOND); } /** * 返回毫秒 * * @param date * 日期 * @return 返回毫秒 */ public static long getMillis(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.getTimeInMillis(); } /** * 返回字符型日期 * * @param date * 日期 * @return 返回字符型日期 */ public static String getDate(java.util.Date date) { return format(date, "yyyy/MM/dd"); } /** * 返回字符型时间 * * @param date * 日期 * @return 返回字符型时间 */ public static String getTime(java.util.Date date) { return format(date, "HH:mm:ss"); } /** * 返回字符型日期时间 * * @param date * 日期 * @return 返回字符型日期时间 */ public static String getDateTime(java.util.Date date) { return format(date, "yyyy/MM/dd HH:mm:ss"); } /** * 日期相加 * * @param date * 日期 * @param day * 天数 * @return 返回相加后的日期 */ public static java.util.Date addDate(java.util.Date date, int day) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000); return c.getTime(); } /** * 日期相减 * * @param date * 日期 * @param date1 * 日期 * @return 返回相减后的日期 */ public static int diffDate(java.util.Date date, java.util.Date date1) { return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000)); } /** * 取得指定月份的第一天 * * @param strdate * String * @return String */ public static String getMonthBegin(String strdate) { java.util.Date date = parseDate(strdate); return format(date, "yyyy-MM") + "-01"; } /** * 取得指定月份的最后一天 * * @param strdate * String * @return String */ public static String getMonthEnd(String strdate) { java.util.Date date = parseDate(getMonthBegin(strdate)); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.MONTH, 1); calendar.add(Calendar.DAY_OF_YEAR, -1); return formatDate(calendar.getTime()); } /** * 常用的格式化日期 * * @param date * Date * @return String */ public static String formatDate(java.util.Date date) { return formatDateByFormat(date, "yyyy-MM-dd"); } /** * 以指定的格式来格式化日期 * * @param date * Date * @param format * String * @return String */ public static String formatDateByFormat(java.util.Date date, String format) { String result = ""; if (date != null) { try { SimpleDateFormat sdf = new SimpleDateFormat(format); result = sdf.format(date); } catch (Exception ex) { ex.printStackTrace(); } } return result; }}
[解决办法]
学习
[解决办法]
收藏
[解决办法]
最近多次看见如下问题
一数组 {'f','F','K','A','a','j','z'}
要求排序 为 {'A','a','F','f','j','K','z'}
发个个人认为比较好的方案
import java.util.Arrays;import java.util.Comparator;public class SortTest{ public static void main(String args[]) { char[] chs = {'f', 'F', 'K', 'A', 'a', 'j', 'z'}; chs = sortChars(chs, false); for(char c: chs) { System.out.println(c); } } /** * 对给定的字符数组进行字典排序 * @param chs 目标字符数组 * @param upperFisrt 大写字母是否在前 * @return 排序后的字符数组 */ public static char[] sortChars(char[] chs, final boolean upperFisrt) { Character[] srcArray = new Character[chs.length]; char[] retArray = new char[chs.length]; int index = 0; for(char ch: chs) { srcArray[index++] = ch; } Arrays.sort(srcArray, new Comparator<Character>() { public int compare(Character c1, Character c2) { char ch1 = Character.toUpperCase(c1); char ch2 = Character.toUpperCase(c2); if(ch1 == ch2) { int tempRet = c1.charValue() - c2.charValue(); return upperFisrt? tempRet: -tempRet; } else { return ch1 - ch2; } } }); index = 0; for(char ch: srcArray) { retArray[index++] = ch; } return retArray; }}
[解决办法]
一个简单的C/S多线程应用,稍微扩展就可以用了
/*socket是网络应用程序的核心,在服务器端或客户端网络应用程序中,socket皆为不可缺少的要素
*在服务器常见的应用有:FTP服务器,MAIL服务器(SMTP,POP3,IMAP4协议),WEB(HTTP协议)
*建立服务器端SOCKET的应用程序步骤如下:
*1。建立服务器端的SOCKET,并且以此侦听客户端的连接请求
*2。当服务器端侦测到来自客户端的连接请求时则接收此请求并建立客户端的SOCKET,该SOCEKT将作为
* 客户端连接及后续处理发送及接收数据的依据,至此则完成服务器端与客户端的SOCKET通信链接
*3。处理来自客户端的信息,一般称为请求,可视为客户端的指令需求。例如HTTP通信协议的URL请求,
* 或FTP通信协议的FTP命令(如GET,PUT)等
*4。根据客户端传来的请求服务器端需经过程序逻辑处理之后,发送回相对应的招待结果或错误信息至
* 客户端如HTTP服务器须发送回HTML网页内容,而FTP服务器则发送回FTP指令的结果
*5。当程序完成数据或命令的处理之后,便关闭SOCKET通信链接
*/
/*
simpleServer.java
*/
import java.net.*;
import java.io.*;
public class simpleServer
{
private static ServerSocket serverSocket;
private static listenClient listen;
public static void main(String[] args) throws Exception
{
int port;
if(args.length==0)
{
System.out.println("Usage:java simpleServer [port]");
System.exit(1);
}
port=Integer.parseInt(args[0]);
startServer(port);
}
public static void startServer(int port)throws Exception
{
try
{
serverSocket=new ServerSocket(port);
Thread thread=new Thread(new listenClient(serverSocket));
thread.start();
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
class listenClient implements Runnable
{
private ServerSocket serverSocket;
private Socket clientSocket;
DataInputStream in;
DataOutputStream out;
public listenClient(ServerSocket serverSocket)throws Exception
{
this.serverSocket=serverSocket;
}
public void run()
{
try
{
while(true)
{
clientSocket=serverSocket.accept();
System.out.println("Connection from "+clientSocket.getInetAddress().getHostAddress());
in=new DataInputStream(clientSocket.getInputStream());
out=new DataOutputStream(clientSocket.getOutputStream());
String lineSep=System.getProperty("line.separator");//行分隔符,即回车换行
InetAddress addr=serverSocket.getInetAddress().getLocalHost();
String outData="Server Information: "+lineSep+" Local Host: "+serverSocket.getInetAddress().getLocalHost()+lineSep+" port :"+serverSocket.getLocalPort();
byte[] outByte=outData.getBytes();
out.write(outByte,0,outByte.length);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
};
[解决办法]
/*客户端SOCKET应用程序与服务器端SOCKET应用程序的流程很相似,最大的差别在于:
*1。服务器端SOCKET应用程序主要用于侦听及接收客户端的连接,而客户端的SOCKET
* 应用程序则用于尝试与服务器端建立连接
*2。客户端SOCKET应用程序发送信息指令至服务器端,并接收服务器端所返回的结果;
* 而服务器端SOCEKT应用程序则处理指令逻辑,并将结果或错误信息发送至客户端
*
*常见的客户端应用有:CHAT客户端,FTP客户端,POP3客户端,SMTP客户端和TELNET客户端
*建立客户端SOCKET应用程序的步骤大致如下:
*1。建立客户端SOCKET,在建立时需指定欲连接服务器端的主机名称(或IP)与INTERNET
* 通信端口
*2。发送特定信息或指令至服务器端
*3。接收服务器端返回的执行结果或错误信息,并以特定格式显示,例如HTTP通信协议会通过
* HTML显示
*4。当客户端不需服务器端的处理时,便关闭SOCEKT通信链接
*/
/*
simpleClient.java
*/
import java.net.*;
import java.io.*;
public class simpleClient
{
private static Socket socket;
public static void main(String[] args)throws Exception
{
String host;
int port;
if(args.length<2)
{
System.out.println("Usage:java simpleClient [remote IP/Host] [port]");
System.exit(1);
}
host=args[0];
port=Integer.parseInt(args[1]);
connectServer(host,port);
}
public static void connectServer(String host,int port)
{
try
{
socket=new Socket(InetAddress.getByName(host),port);
DataInputStream in=new DataInputStream(socket.getInputStream());
DataOutputStream out=new DataOutputStream(socket.getOutputStream());
byte[] inByte=new byte[1024];
in.read(inByte);
String response=new String(inByte,0,inByte.length);
System.out.println("Message from server: ");
System.out.println(response.trim());
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch(IOException ex)
{
ex.printStackTrace();
}
finally
{
try
{
socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
[解决办法]
还有,大家会用到的正则匹配;
mode= Pattern.matches("[0-9]{1}|[A-F]{1}", input)
[解决办法]
/**
* 写入日志
* 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;
}
}
[解决办法]
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java里也能这样?
[解决办法]
/** * 拷贝一个目录或者文件到指定路径下 * * @param source * @param target */ public static void copy(File source, File target) { File tarpath = new File(target, source.getName()); if (source.isDirectory()) { tarpath.mkdir(); File[] dir = source.listFiles(); for (int i = 0; i < dir.length; i++) { copy(dir[i], tarpath); } } else { try { InputStream is = new FileInputStream(source); OutputStream os = new FileOutputStream(tarpath); byte[] buf = new byte[1024]; int len = 0; while ((len = is.read(buf)) != -1) { os.write(buf, 0, len); } is.close(); os.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
[解决办法]
贴个排序的吧:
import java.util.*;public class csdntest3{ @SuppressWarnings("unchecked") public static void main(String[] args){ List<Integer> list = new ArrayList<Integer>(); for(int i = 1; i <=5; i++){ list.add(i); } Collections.sort(list, new Comparatorsort()); for(int i = 0; i < list.size(); i++){ System.out.println(list.get(i)); } }}class Comparatorsort implements Comparator{ public int compare(Object o1,Object o2) { Integer str1=(Integer)o1; Integer str2=(Integer)o2; if(str1.compareTo(str2)>0) return -1; if(str1.compareTo(str2)<0) return 1; return 0; }}
[解决办法]
/** *判断任意一个整数是否素数 *@paramn *@return boolean */ public boolean isPrimes(int n) { for (int i = 2; i <= Math.sqrt(n); i++) { if(n%i==0) { return false; } } return true; }