总结一下最近程序中用到的代码吧,大部分不是自己写的,放到这里,备份一下,以后忘记了来看一下;

 //正则表达式验证手机号
public static void phoneTest(String phone) {
/**
* 目前移动、联通、电信三大运营商的手机号段如下:
* 1、移动号段有: 134,135,136,137,138,139,147,150,151,152,157,158,159,178,182,183,184,187,188;
* 2、联通号段有: 130,131,132,155,156,185,186,145,176;
* 3、电信号段有: 133,153,177,180,181,189;
* 4、 170号段为虚拟运营商专属号段,170号段的11位手机号前四位来区分基础运营商,其中 "1700" 为中国电信,"1705" 为中国移动,"1709" 为中国联通;
*/
Pattern pattern = Pattern
.compile("^((13[0-9])|(15[^4,\\D])|(14[5,7])|(17[0,6-8])|(18[0-9]))\\d{8}$");
Matcher matcher = pattern.matcher(phone); if (matcher.find()) {
System.out.println("your phone number is right: " + phone);
} }
 //正则表达式验证邮箱
public static void mailTest(String mail) {
/**
* 合法E-mail地址:
* 1. 必须包含一个并且只有一个符号"@"
* 2. 第一个字符不得是"@"或者"."
* 3. 不允许出现"@."或者".@"
* 4. 结尾不得是字符"@"或者"."
* 5. 允许"@"前的字符中出现"+"
* 6. 不允许"+"在最前面,或者"+@"
*/
Pattern pattern = Pattern
.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
Matcher matcher = pattern.matcher(mail);
if (matcher.find()) {
System.out.println("your email is right: " + mail);
} }
  /**
* 随机选取集合里的一个数字
*
*/ // 集合是List类型
public static int getList(List<Integer> list) {
int number = list.get((int) (Math.random() * list.size()));
return number;
} // 集合是Set类型
public static int getSet(Set<Integer> set) {
Object[] object = set.toArray();
int number = (int) object[(int) (Math.random() * object.length)];
return number;
}
  /*
* 查找字符串中子字符串的个数
*/
private static int number = 0; public static int stringNumbers(String str) {
if (str.indexOf("java") == -1) {
return 0;
} else {
number++;
stringNumbers(str.substring(str.indexOf("java") + 4));
return number;
}
} // 也可以使用此种方式,但除了以下情况;
// 子字符串是一个首尾相同的字符串,且字符串最后没有空格;
// "java%%%%java****java %%%% java"
public static int stringNumber(String str) {
if (str.indexOf("java") != -1) {
String[] str1 = str.split("java");
return str1.length - 1;
} else {
return 0;
}
}
package test;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; /**
* 将中文解析为拼音
* 需要导入pinyin4j的jar包
*/
public class ChineseToPinyin { // 将中文转化为拼音
public static String getPinYin(String chinese)
throws BadHanyuPinyinOutputFormatCombination { // 首先需要创建格式化对象HanyuPinyinOutputFormat
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat(); // 设置大小写格式
// outputFormat.setCaseType(HanyuPinyinCaseType);
// HanyuPinyinCaseType.LOWERCASE 转换后以全小写方式输出
// HanyuPinyinCaseType.UPPERCASE 转换后以全大写方式输出
outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 方法参数HanyuPinyinToneType有以下常量对象:
// HanyuPinyinToneType.WITH_TONE_NUMBER 用数字表示声调,例如:zhao4
// HanyuPinyinToneType.WITHOUT_TONE 无声调表示,例如:zhao
// HanyuPinyinToneType.WITH_TONE_MARK 用声调符号表示,例如:zhao
outputFormat.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER); // 方法参数HanyuPinyinVCharType有以下常量对象:
// HanyuPinyinVCharType.WITH_U_AND_COLON 以U和一个冒号表示该拼音,
// HanyuPinyinVCharType.WITH_V 以V表示该字符,
// HanyuPinyinVCharType.WITH_U_UNICODE
outputFormat.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON); StringBuffer buffer = new StringBuffer();
for (Character c : chinese.toCharArray()) {
buffer.append(PinyinHelper
.toHanyuPinyinStringArray(c, outputFormat)[0]);
buffer.append(" ");
}
return buffer.toString().substring(0, buffer.length() - 1);
} public static void main(String[] args)
throws BadHanyuPinyinOutputFormatCombination {
String s = "我们都是中国人";
System.out.println(s);
String pinYin = getPinYin(s);
System.out.println(pinYin);
}
}
package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern; public class StringConvert { // 正则表达式匹配字符串,不区分大小写
public static void ignore(String string) {
Pattern p = Pattern.compile("great", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(string);
while (m.find()) {
System.out.println(m.group());
}
} /*
* 在字符串中使用
* 与Pattern.CASE_INSENSITIVE对应的表达式是(?i)
* 它有四种形式: (?i) (?-i) (?i:X) (?-i:X) 不带有 - 的是开标志,带有 - 的是关标志。
* 具体实现可看API
*/
public static void stringIgnore(String string) {
String regex = "(?i)great";
System.out.println(string.matches(regex));
} // 如: 将字符串中的某一个子字符串转换为特定的字符串
public static String replace(String source, String str) {
return source.replaceAll("(?i)" + str, str);
} public static void main(String[] args) {
String string = "you are greaT, you are GrEat,you are GREAt";
string = replace(string, "great");
System.out.println(string);
}
}
import java.lang.reflect.Field;

import test.EntityTest;

/**
* 利用反射获取类的属性值(包括私有属性)
*
*/
public class TestReflect {
public static void main(String[] args) throws Exception {
getFields(EntityTest.class);
System.out.println("-----------");
getField(EntityTest.class);
} // 获取所有的属性值
public static void getFields(Class<?> className) throws Exception { Class<?> cls = Class.forName(className.getName());
// 得到className类所有的属性(包括私有属性)
Field fields[] = cls.getDeclaredFields();
String[] name = new String[fields.length];
Object os = cls.newInstance();
// 该方法表示取消java语言访问检查
Field.setAccessible(fields, true);
for (int i = 0; i < name.length; i++) {
name[i] = fields[i].getName();
System.out.println(name[i] + ":" + fields[i].get(os));
}
} // 获取某个属性值
public static void getField(Class<?> className) throws Exception { Class<?> cls = Class.forName(className.getName());
Object obj = cls.newInstance();
Field field = cls.getDeclaredField("name");
// 该方法表示取消java语言访问检查
field.setAccessible(true); // 为属性赋值
field.set(obj, "name"); Object object = field.get(obj);
System.out.println(object);
}
}
// 正则表达式 将多个斜杠 转换为一个
String url = "af///ddsf/sfsf//sf/d///ds////d////ds//////r";
url = url.replaceAll("/{2,}", "/");
System.out.println(url);
// 把一个字符串的第一个字母大写
public static String setFirstName(String name) {
char[] chars = name.toCharArray();
chars[0] -= 'a' - 'A';
return new String(chars);
}
/**
* 在Window或Linux系统下使用通用分割符来分割路径
*
* 在Windows系统下,Java程序获取到的路径分隔符是"\" ,转译之后就是"\\"
* 例如:通过"\"分割目录:c:\\xxxx\\xxxx\\ String[] tmp = test.split("\\\\");
*
* 在Linux系统下,Java程序获取到的路径分隔符是"/",无需转义
* 例如:通过"/"分割目录:/xxxx/xxxx/xxxx/
*/ // 而该方法为通用方法,适用于Windows和Linux系统
String[] tmp = path.split(System.getProperty("file.separator"));
/**
* Json与对象的转换,使用google的GSON包来解析
*/ // 对象转换为Gson,包括List转JSON
public static String toJSON(Object object) {
// Gson gson = new GsonBuilder().disableHtmlEscaping().serializeNulls()
// .create();
Gson gson = new Gson();
String json = gson.toJson(object);
return json; } // Gson转换为对象
public static Object jsonToObject(String json) {
Gson gson = new Gson(); //Gson转换为 单一对象
EntityTest entityTest = gson.fromJson(json, EntityTest.class); //Gson转换为List对象
List<EntityTest> objList = gson.fromJson(json,
new TypeToken<List<EntityTest>>() {}.getType()); //Gson转换为Map对象
Map<String, EntityTest> entityTests = gson.fromJson(json,
new TypeToken<Map<String, EntityTest>>() {}.getType()); return objList;
}
/**
* 查找数据库中所有的表
* @param conn
*/
public void getTableNameByCon(Connection conn) {
try {
DatabaseMetaData meta = conn.getMetaData();
ResultSet rs = meta.getTables(null, null, null,
new String[] { "TABLE" });
while (rs.next()) {
System.out.println("表名:" + rs.getString("TABLE_NAME"));
System.out.println("表所属用户名:" + rs.getString(2));
System.out.println("------------------------------");
} } catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry; //对map 使用value进行排序(value为int类型)
public class MapSorted { public static Map<String, Integer> solveMap(Map<String, Integer> map) {
LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<String, Integer>();
ComparatorTest comparatorTest = new ComparatorTest();
ArrayList<Map.Entry<String, Integer>> entrys = new ArrayList<Map.Entry<String, Integer>>(
map.entrySet());
Collections.sort(entrys, comparatorTest); for (Map.Entry<String, Integer> entry : entrys) {
linkedHashMap.put(entry.getKey(), entry.getValue());
}
return linkedHashMap;
} static class ComparatorTest implements
Comparator<Map.Entry<String, Integer>> { public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o1.getValue().compareTo(o2.getValue());
}
} public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("Lisi", 90);
map.put("Zhaoliu", 150);
map.put("Zhangsan", 40);
map.put("Wangwu", 120);
map = solveMap(map);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " ----- " + entry.getValue());
}
}
}
// Java 获取当前时间前一个小时的时间
public static void beforeOneHourToNowDate() {
Calendar calendar = Calendar.getInstance();
// HOUR_OF_DAY 指示一天中的小时
calendar.set(Calendar.HOUR_OF_DAY,calendar.get(Calendar.HOUR_OF_DAY) - 1);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("当前的时间:" + df.format(new Date()));
System.out.println("一个小时前的时间:" + df.format(calendar.getTime()));
}
// 获取hibernate的实体类的主键名称
public String getPramaryName(Class entity) {
try {
Class<?> c = Class.forName(entity.getName());
Field[] fields = c.getDeclaredFields();
;
for (Field field : fields) {
field.isAnnotationPresent(Id.class);
String pkname = field.getName();
return pkname;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}

其中所需jar包地址:

汉字转化为拼音的jar包:汉字转化为拼音的jar包

json转换使用的google的json包:google-gson-21.-release

Java中一些常用的代码的更多相关文章

  1. Java 中的5个代码性能提升技巧,最高提升近10倍

    文章持续更新,可以关注公众号程序猿阿朗或访问未读代码博客. 本文 Github.com/niumoo/JavaNotes 已经收录,欢迎Star. 这篇文章介绍几个 Java 开发中可以进行性能优化的 ...

  2. 在Java中直接调用js代码(转载)

    http://blog.csdn.net/xzyxuanyuan/article/details/8062887 JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Ja ...

  3. 在Java中直接调用js代码

    JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert ...

  4. java中最常用jar包的用途说明

    java中最常用jar包的用途说明,适合初学者 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实 ...

  5. Java中最常用的集合类框架之 HashMap

    一.HashMap的概述 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构.      HashMap是基于哈希表的Map接口实现的,此实现提供所有可选的映射 ...

  6. java中的常用类(二)

    java中的常用类(二) Math类 Math类的声明:public final class Math extends Object Math类是与数学计算有关的类,里面的方法都是静态方法,直接使用类 ...

  7. java 中的常用类

    Java 中的包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等. 基本数据类型是不具备对象的特性的,比如基本类型不能调用方法.功能 ...

  8. java中日期常用

    Java中日期的几种常见操作 —— 取值.转换.加减.比较 Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几 ...

  9. java中一些常用的英语

     abstract (关键字  ) 抽象  ['.bstr.kt]  access vt.访问,存取  ['.kses]'(n.入口,使用权)  algorithm n.算法  ['.lg.rie ...

随机推荐

  1. POJ 1979 深度优先搜索

    题意:有红色和黑色的格子,只能走黑色的,问从起始位置出发,最多能走到达多少块黑色格子. 分析:相当于走迷宫,黑色格子是路,红色格子是墙,每次到达一个未到达过的格子时计数,原点也算是一个.每次可以走上下 ...

  2. Codeforce 221 div1

    A 只要打个表就能发现,1,6,8,9的所有排列就可以产生0~6的余数了... 所以...走不下去的时候一定要打表... #define rep(i,n) for(int i=0 ; i<(n) ...

  3. Zabbix中文使用手册

    一.Zabbix简介 详情参考“企业监控利器-zabbix”http://waringid.blog.51cto.com/65148/904201. 二.Zabbix使用 2.1 Zabbix框架介绍 ...

  4. lesson3.1:java公平锁和非公平锁及读写锁

    关于这四种锁的各自情况,网上有很多文章做了介绍,本不想单独开章节介绍,本章只介绍这四种锁的一些源码特点及注意事项. demo 源码:https://github.com/mantuliu/javaAd ...

  5. REST深入浅出

    不知你是否意识到,围绕着什么才是实现异构的应用到应用通信的“正确”方式,一场争论正进行的如火如荼:虽然当前主流的方式明显地集中在基于SOAP.WSDL和WS-*规范的Web Services领域,但也 ...

  6. samba服务简介

    1.1 Samba 概述Samba主要用于Windows和Linux之间的文件共享,也一样用于Linux和Linux之间的共享文件:不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS ...

  7. Linux命令初步了解

    知识点: 1.虚拟控制台: 在系统启动时直接进入字符工作方式后,系统提供了多个(默认为6个)虚拟控制台.每个虚拟控制台可以相互独立使用,互不影响. 可以使用Alt+F1~Alt+F6进行多个虚拟控制台 ...

  8. asp.net 5.0微信支付

    (原文出自:http://lib.csdn.net/article/wechat/46329) 微信支付官方坑太多,我们来精简 我把官方的代码,打包成了 an.wxapi.dll. 里面主要替换了下注 ...

  9. django: db howto - 2

    继 django: db howto - 1 : 一 操作数据库的三种方式: [root@bogon csvt03]# python2.7 manage.py shell Python 2.7.5 ( ...

  10. C库专题(Day1)

    <assert.h> C库宏-assert()   定义:#define assert(ignore) ((void)0) void assert(int experession); ex ...