Java中一些常用的代码
总结一下最近程序中用到的代码吧,大部分不是自己写的,放到这里,备份一下,以后忘记了来看一下;
//正则表达式验证手机号
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中一些常用的代码的更多相关文章
- Java 中的5个代码性能提升技巧,最高提升近10倍
文章持续更新,可以关注公众号程序猿阿朗或访问未读代码博客. 本文 Github.com/niumoo/JavaNotes 已经收录,欢迎Star. 这篇文章介绍几个 Java 开发中可以进行性能优化的 ...
- 在Java中直接调用js代码(转载)
http://blog.csdn.net/xzyxuanyuan/article/details/8062887 JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Ja ...
- 在Java中直接调用js代码
JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert ...
- java中最常用jar包的用途说明
java中最常用jar包的用途说明,适合初学者 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实 ...
- Java中最常用的集合类框架之 HashMap
一.HashMap的概述 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构. HashMap是基于哈希表的Map接口实现的,此实现提供所有可选的映射 ...
- java中的常用类(二)
java中的常用类(二) Math类 Math类的声明:public final class Math extends Object Math类是与数学计算有关的类,里面的方法都是静态方法,直接使用类 ...
- java 中的常用类
Java 中的包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等. 基本数据类型是不具备对象的特性的,比如基本类型不能调用方法.功能 ...
- java中日期常用
Java中日期的几种常见操作 —— 取值.转换.加减.比较 Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几 ...
- java中一些常用的英语
abstract (关键字 ) 抽象 ['.bstr.kt] access vt.访问,存取 ['.kses]'(n.入口,使用权) algorithm n.算法 ['.lg.rie ...
随机推荐
- javascript表单验证-邮箱验证
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 两个php.ini; ubuntu下配置文件
C:\wamp\bin\apache\apache2.4.17\bin\php.ini 用于web访问时的配置文件, C:\wamp\bin\php\php5.6.15\php.ini 用于cli [ ...
- js基础例子动态创建table实例
<style> table{ width:500px; font-weight: bold; border: 1px solid #000; border-collapse:collaps ...
- (转)Maven实战(二)构建简单Maven项目
上一节讲了maven的安装和配置,这一节我们来学习一下创建一个简单的Maven项目 1. 用Maven 命令创建一个简单的Maven项目 在cmd中运行如下命令: mvn archetype:gene ...
- (转)苹果消息推送服务器 php 证书生成
1.准备好 aps_developer_identity.cer , push.p12这两个证书文件 2. 生成证书如下: openssl x509 -in aps_developer_identit ...
- 现代的新语言--Swift初探
新的语言 WWDC简短的介绍,新的语言Swift就问世了,尽管新语言的名字导致贴吧下歌手粉丝和开发人员们争抢地盘- -,只是雨燕就是这么来了. WWDC keynote里给Swift打上了非常多标签: ...
- resin安装
1. 说明 Resin版本:resin-3.1.6 2. 安装jdk 安装jdk-1_5_0_09-windows-i586-p.exe程序到相应目录. (假设安装到D:\ jdk1.5.0_09) ...
- Spring学习笔记——Spring中的BeanFactory与FactoryBean
BeanFactory BeanFactory是Spring的org.springframework.beans.factory下的一个接口,是Spring IOC所遵守的基本编程规范.他的实现类有D ...
- C# Tips:获得当前登录计算机的用户(本地用户/域用户)
须要using的namespace: using System.Security.Principal; 获得登录计算机的用户: WindowsIdentity windowsIdentity = Wi ...
- struts2讲义----二
Struts的namespace 示例工程Struts2_0200_Namespace Struts.xml <struts> <constant name="struts ...