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

 //正则表达式验证手机号
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. 为什么 HTTP 有时候比 HTTPS 好?

    做为一家安全公司,我们在站点Stormpath上经常被开发者问到的是有关安全方面最优做法的问题.其中一个被经常问到的问题是: 我是否应当在站点上运行HTTPS? 很不幸,查遍整个因特网,你大多数情况下 ...

  2. linux内存管理--slab及其代码解析

    Linux内核使用了源自于 Solaris 的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配,被称为slab高速缓存. 内存管理的目标是提供一种方法,为实 ...

  3. JDBC远程从一个MySql数据库中的一张表里面读出数据(这个数据库需要用SSH隧道连接,大约8W条数据),然后分别插入到另一个数据库中的两张表里

    package com.eeepay.lzj.db; import java.sql.Connection; import java.sql.Date; import java.sql.DriverM ...

  4. MyBatis的简单操作

    这里将的是简单的增.删.改.查等基本操作 首先创建java项目,导入相应的依赖包,这里可以参考上一篇博客 1.添加数据 在jike.book.pojo包中,新建java类 JiKeUser.java: ...

  5. [Node.js] node-persist: localStorage on the server

    // Save data var storage = require('node-persist'); storage.init(); var people= require('./people.js ...

  6. android requestDisallowInterceptTouchEvent用途

    ViewPager来实现左右滑动切换tab.假设tab的某一项中嵌入了水平可滑动的View就会让你有些不爽,比方想滑动tab项中的可水平滑动的控件,却导致tab切换. 由于Android事件机制是从父 ...

  7. wpf 中自定义控件及其使用

    主要有3个步骤: 1. 首先创建一个自定义的控件,该控件继承 TextBox namespace EzIntePark.Presentation.Common { /// <summary> ...

  8. 内核与ramdisk到底是什么关系

    转自:http://www.lupaworld.com/forum.php?mod=viewthread&tid=61425 原名:内核与ramdisk到底是什么关系? 个人Notes:    ...

  9. Linux内核如何启动并装载一个可执行程序

    2016-04-07 张超<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000#/info 一.理解编译链接的 ...

  10. 内容提供者 ContentResolver 数据库 示例 -1

    MainActivity public class MainActivity extends ListActivity {     private TextView tv_info;     priv ...