一.获取UUID
UUID uuid = UUID.randomUUID();
String str = uuid.toString();
// 去掉“-”
String s = str.replaceAll("-", "");
二.获取固定格式的时间字符串
第一种
//获取当前时间对象
Date d = new Date();
//创建日期格式化类对象,”yyyy/MM/dd HH:mm:ss”是我们希望的日期出现格式
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
System.out.println(sdf.format(d));
第二种、通过System类中的currentTimeMillis方法来获取当前时间。
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(System.currentTimeMillis()));
第三种、通过Calendar类来获取当前时间
Calendar c = Calendar.getInstance();//可以对每个时间域单独修改 对时间进行加减操作等
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);
三.获取[0, 100)之间的int整数
double d = Math.random(); // [0.0,1.0)
int i = (int)(d*100); // [0,100)
四.把 Java util.Date 转成 sql.Date
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
五.Java中将String转化为Int
String str = "123";
try {
int a = Integer.parseInt(str);
} catch (NumberFormatException e) {
e.printStackTrace();
}
六.Java中将Int转String
int num=100;
//1
String s1=""+num;
System.out.println(s1);
//2
String s2 =String.valueOf(num);
System.out.println(s2);
//3
Integer i =new Integer(num);
String s3 =i.toString();
System.out.println(s3);
//4
String s4 =Integer.toString(i);
System.out.println(s4);
七.== 和 equals的使用
1.判断相等
String s1,s2,s3 = "abc", s4 ="abc" ;
s1 = new String("abc");
s2 = new String("abc");
s1==s2 是 false //两个变量的内存地址不一样,也就是说它们指向的对象不 一样,
s1.equals(s2) 是 true //两个变量的所包含的内容是abc,故相等。
2.判断不等
取非表示不相同
!a.equals(b);
八.判断左边的对象是否是右边的类的实例
double obj=1;
if(obj instanceof Double){
System.out.println("true");
}
九.String中常用方法
1.获取字符串的长度(字符的个数)-------length()
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.length()); // 18
2.获取指定索引处的字符----charAt(int index)
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.charAt(12)); // 发
3.获取str在字符串对象中第一次出现的索引-----String.indexOf(String str)
String str1="012345";
String str2="23";
System.out.println( str1.indexOf(str2) ); // 2
4.从start开始截取字符串 ---substring(int start)
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.substring(1)); // dsfaxsdfas沙发上发地方
5.从start开始,到end结束截取字符串。包括start,不包括end ---- String substring(int start,int end)
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.substring(1, 12)); // dsfaxsdfas沙
6.判断字符串对象是否以指定的字符开头,参数toffset为指定从哪个下标开始 ----startsWith(String prefix,int toffset)
或startsWith(String prefix)
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.startsWith("f", 3)); //true
System.out.println(str.startsWith("f", 4)); // false
7.判断字符串对象是否以指定的字符结尾 ----endsWith(String str)
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.endsWith("x")); // false
System.out.println(str.endsWith("方")); // true
8.判断指定字符串是否为空 ----isEmpty()
9.去除字符串两端空格 ----trim()
String str3 = " a c e x u a n x u a n ";
System.out.println(str3.trim());
System.out.println(str3);
10.去除字符串中指定的的字符,然后返回一个新的字符串 ----split()
public static void main(String[] args) {
String str = "adsfaxsdfas沙发上发地方";
String array[] = str.split("a");
printString(array);
}
public static void printString(String a[]) {
for(int i=0;i<a.length;i++) {
System.out.print(a[i]);
}
} // dsfxsdfs沙发上发地方
11.截取字符串中指定位置的字符组成一个新的字符串 ----subSequence(int beginIndex,int endIndex )
String str = "adsfaxsdfas沙发上发地方";
System.out.println(str.subSequence(1, 10)); // dsfaxsdfa
12.将指定字符替换成另一个指定的字符 ----replace(char oldChar, char newChar)
String str = "adsfaxsdfas沙发上发地方";
System.out.println(str.replace('a', 's')); // sdsfsxsdfss沙发上发地方
13.用新的内容替换全部旧内容 ----replaceAll(String regex,String replasement)
String str4 = "Hello,world!";
System.out.println(str4.replaceAll("l", "&")); // He&&o,wor&d!
14.返回指定字符出现的最后一次的下标 ----lastIndexOf(String str)
String str4 = "Hello,world!";
System.out.println(str4.lastIndexOf("l")); // 9
15.查看字符串中是否含有指定字符 ----contains(CharSequence s)
String str4 = "Hello,world!";
System.out.println(str4.contains("l")); // true
16. 在原有的字符串的基础上加上指定字符串 ----concat(String str)
String str5 = "dr";
System.out.println(str5.concat("eam")); // dream
17.由基本数据型态转换成String ----String.valueOf()
(1)String.valueOf(boolean b) : 将boolean变量b转换成字符串
(2)String.valueOf(char c) : 将char变量c转换成字符串
(3)String.valueOf(char[] data) : 将char数组data转换成字符串
(4)String.valueOf(char[] data, int offset, int count) : 将char数组data中由 data[offset]开始取count个元素转换成字符串
(5)String.valueOf(double d) : 将double变量d转换成字符串
(6)String.valueOf(float f) : 将float变量f转换成字符串
(7)String.valueOf(int i) : 将int变量i转换成字符串
18.str.toLowerCase()
字符串转小写
19.str.toUpperCase()
字符串转大写
20.str.getBytes()
得到一个操作系统默认的编码格式的字节数组。
十.单实例Singleton 示例
public class SimpleSingleton {
private static SimpleSingleton singleInstance = new SimpleSingleton();
//Marking default constructor private
//to avoid direct instantiation.
private SimpleSingleton() {
}
//Get instance for class SimpleSingleton
public static SimpleSingleton getInstance() {
return singleInstance;
}
}
十一.得到当前方法的名字
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
十二.列出文件和目录
File dir = new File("directoryName");
String[] children = dir.list();
if (children == null) {
// Either dir does not exist or is not a directory
} else {
for (int i=0; i < children.length; i++) {
// Get filename of file or directory
String filename = children[i];
}
}
// It is also possible to filter the list of returned files.
// This example does not return any files that start with `.'.
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return !name.startsWith(".");
}
};
children = dir.list(filter);
// The list of files can also be retrieved as File objects
File[] files = dir.listFiles();
// This filter only returns directories
FileFilter fileFilter = new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
};
files = dir.listFiles(fileFilter);
十三.switch case使用
public class Test {
public static void main(String args[]){
//char grade = args[0].charAt(0);
char grade = 'C';
switch(grade)
{
case 'A' :
System.out.println("优秀");
break;
case 'B' :
case 'C' :
System.out.println("良好");
break;
case 'D' :
System.out.println("及格");
break;
case 'F' :
System.out.println("你需要再努力努力");
break;
default :
System.out.println("未知等级");
}
System.out.println("你的等级是 " + grade);
}
}
十四.StringUtils的常用方法
1.public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
2.public static boolean isNotEmpty(String str)
某字符串是否非空,等于 !isEmpty(String str)
StringUtils.isNotEmpty(null) = false
StringUtils.isNotEmpty("") = false
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty("bob") = true
StringUtils.isNotEmpty(" bob ") = true
3.public static boolean isBlank(String str)
判断某字符串是否为空或长度为0或由空白符(whitespace) 构成
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车符
StringUtils.isBlank() //均识为空白符
StringUtils.isBlank("\b") = false //"\b"为单词边界符
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
4.public static boolean isNotBlank(String str)
判断某字符串是否不为空且长度不为0且不由空白符(whitespace) 构成,等于 !isBlank(String str)
StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank("\t \n \f \r") = false
StringUtils.isNotBlank("\b") = true
StringUtils.isNotBlank("bob") = true
StringUtils.isNotBlank(" bob ") = true
十五.System.currentTimeMillis()方法
JAVA获取当前系统时间。
System.currentTimeMillis()产生一个当前的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数,Date()其实就是相当于Date(System.currentTimeMillis());因为Date类还有构造Date(long date),用来计算long秒与1970年1月1日之间的毫秒差。
十六.Collections中常用方法
1.Collections.singletonList()方法
方法用于返回仅包含指定对象的不可变列表。返回的列表是可序列化的。
2.Collections.emptySet() 、Collections.emptyList() 、Collections.emptyMap()
会生成指定类型的空List Set Map,而且是不可变的。
3.Collectors.toMap方法
实现List转换为Map
十七.Collectors.toList()
ToList 方法可以收集所有流中元素至List实例。需要注意的是,使用该方法不能假设任何List的特定实现,如果你想指定List实现,需要使用toCollection 代替.下面示例创建一个流实例表示元素序列,然后收集至List实例对象中。
十八.Map中常用方法
1.containsKey(Object key)方法
判断Map集合对象中是否包含指定的键名
如果 hashMap 中是否存在指定的 key 对应的映射关系返回 true,否则返回 false。
2.containsValue(Object value)方法
判断Map集合对象中是否包含指定的value值
如果 hashMap 中是否存在指定的 value 对应的映射关系返回 true,否则返回 false。
十九.HttpServletRequest常用方法
1.getHeader(String name):获得指定的请求头数据
例如 getHeader("user-agent"):获取浏览器信息
2.getRequestURL()
获取客户端发出的请求时的完整URL(http:// 到 ?)
3.getRequestURI()
获取请求行中的资源名称部分(项目名称开始)
4.getQueryString()
获取请求行中的参数部分(?后面部分)
5.getMethod()
获取客户端请求方式
6.getProtocol()
获取HTTP版本号
7.getRemoteHost()
获取发出请求的客户机的完整主机名。
8.getRemoteAddr()
获取发出请求的客户机的IP地址
9.getRemotePort()
获取客户机所使用的网络端口号
10.getLocalAddr()
获取WEB服务器的IP地址
11.getLocalName()
获取web服务器的主机名
二十.HttpServletResponse常用方法
1.response.setContentType(“text/html; charset=UTF-8”);
设置编码格式
2.response.setCharacterEncoding(“UTF-8”);
设置编码格式
二十一.java.nio.file.Files类的常用方法
Files. exists():检测文件路径是否存在。
Files. createFile():创建文件。
Files. createDirectory():创建文件夹。
Files. delete():删除一个文件或目录。
Files. copy():复制文件。
Files. move():移动文件。
Files. size():查看文件个数。
Files. read():读取文件。
Files. write():写入文件。
二十二.Java中逗号分隔的字符串和List相互转换
1.字符串转list::Arrays.asList(str.split(“,”))
2.list转字符串:StringUtils.join(list.toArray(),”,”);
二十三.Java判断一个字符串里是否有逗号
str = 你要判断的字符串
(1)str.contains(",")返回true 则包含,
(2)str.indexOf(",")如果等于-1,则不包含。
二十四.Java截取扩展名:文件名. 后的字符串
@Test
public void lastIndexof(){
String str = "文件管理.pdf";
System.out.println(str.substring(str.lastIndexOf(".")+1));
}
二十五.关于java中for和foreach循环
for循环中的循环条件中的变量只求一次值!具体看最后的图片
foreach语句是java5新增,在遍历数组、集合的时候,foreach拥有不错的性能。
foreach是for语句的简化,但是foreach并不能替代for循环。可以这么说,任何foreach都能改写为for循环,但是反之则行不通。
foreach不是java中的关键字。foreach的循环对象一般是一个集合,List、ArrayList、LinkedList、Vector、数组等。
foreach的格式:
for(元素类型T 每次循环元素的名称O : 循环对象){
//对O进行操作
}
1.常见使用方式。
foreach遍历数组。
/**
* 描述:
* Created by ascend on 2016/7/8.
*/public class Client {
public static void main(String[] args) {
String[] names = {"beibei", "jingjing"};
for (String name : names) {
System.out.println(name);
}
}
}
foreach遍历List。
/**
* 描述:
* Created by ascend on 2016/7/8.
*/public class Client {
public static void main(String[] args) {
List<String> list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
for(String str : list){
System.out.println(str);
}
}
}
2.局限性。
foreach虽然能遍历数组或者集合,但是只能用来遍历,无法在遍历的过程中对数组或者集合进行修改,而for循环可以在遍历的过程中对源数组或者集合进行修改。
数组
/**
* 描述:
* Created by ascend on 2016/7/8.
*/public class Client {
public static void main(String[] args) {
String[] names = {"beibei", "jingjing"};
for (String name : names) {
name = "huanhuan";
}
//foreach
System.out.println("foreach:"+Arrays.toString(names));
//for
for (int i = 0; i < names.length; i++) {
names[i] = "huanhuan";
}
System.out.println("for:"+Arrays.toString(names));
}
}
输出:
foreach:[beibei, jingjing]for:[huanhuan, huanhuan]
集合
/**
* 描述:
* Created by ascend on 2016/7/8.
*/public class Client {
public static void main(String[] args) {
List<String> names = new ArrayList<String>();
names.add("beibei");
names.add("jingjing");
//foreach
for(String name:names){
name = "huanhuan";
}
System.out.println(Arrays.toString(names.toArray()));
//for
for (int i = 0; i < names.size(); i++) {
names.set(i,"huanhuan");
}
System.out.println(Arrays.toString(names.toArray()));
}
}
输出:
[beibei, jingjing]
[huanhuan, huanhuan]
特别注意的地方!!
二十六.String字符串与java.util.Date的相互转化
(1)将String转化为Date类型
public static void testStringConvertToDate(){
String stringDate = "2008-10-05";
/*yyyy-MM-dd格式一定要与stringDate的格式一致*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = sdf.parse(stringDate);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
(2)java.util.Date类型转化为String类型
public static void testDateConvertToString(){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
String stringDate = sdf.format(date);
System.out.println("stringDate : " + stringDate);//输出结果 stringDate : 2018年01月12日
}
(3)将给定的日期格式的字符串转化为想要的格式字符串显示,中间通过Date类型转换
public static void stringToString(){
String stringDate = "2008年10月01日10时50分";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
String stringDate2 = null;
try {
date = sdf1.parse(stringDate);
stringDate2 = sdf2.format(date);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("date:" + date);
System.out.println("stringDate2:" + stringDate2);
}
二十七.使用三种方法对list集合进行去除指定元素
第一种方法:使用普通for循环(在去除元素的时候需要主要,删除元素后 List 的元素数量会发生变化)
public static void remove(List<String> list, String target){
for(int i = list.size() - 1; i >= 0; i--){
String item = list.get(i);
if(target.equals(item)){
list.remove(item);
}
}
}
第二种方法:使用CopyOnWriteArrayList,确保线程的安全性,但是具有占用内存和数据不一致的缺陷
public static void remove(ArrayList<String> list, String target) {
final CopyOnWriteArrayList<String> cowList = new CopyOnWriteArrayList<String>(list);
for (String item : cowList) {
if (item.equals(target)) {
cowList.remove(item);
}
}
}
第三种方法:使用Iterator迭代器,注意要使用迭代器中remove方法,不能使用集合的remove方法
public static void remove(List<String> list, String target){
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
String item = iter.next();
if (item.equals(target)) {
iter.remove();
}
}
}
二十七.将字符串的编码格式转换为utf-8
/**
* 将字符串的编码格式转换为utf-8
* @param str
* @return Name = new
* String(Name.getBytes("ISO-8859-1"), "utf-8");
*/
public static String toUTF8(String str) {
if (isEmpty(str)) {
return "";
}
try {
if (str.equals(new String(str.getBytes("GB2312"), "GB2312"))) {
str = new String(str.getBytes("GB2312"), "utf-8");
return str;
}
} catch (Exception exception) {
}
try {
if (str.equals(new String(str.getBytes("ISO-8859-1"), "ISO-8859-1"))) {
str = new String(str.getBytes("ISO-8859-1"), "utf-8");
return str;
}
} catch (Exception exception1) {
}
try {
if (str.equals(new String(str.getBytes("GBK"), "GBK"))) {
str = new String(str.getBytes("GBK"), "utf-8");
return str;
}
} catch (Exception exception3) {
}
return str;
}
java获取:
String name = TypeUtil.toUTF8(request.getParameter("name"));
二十八.Java比较时间
之前有面试到两个日期的大小比较方式,现在整理一下几种方法。
例子:
String beginTime=new String("2017-06-09 10:22:22");
String endTime=new String("2017-05-08 11:22:22");
1 直接用Date自带方法before()和after()比较
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date sd1=df.parse(beginTime);
Date sd2=df.parse(endTime);
System.out.println(sd1.before(sd2));
System.out.println(sd1.after(sd2));
2 用String的compareTo()方法:
Integer i=beginTime.compareTo(endTime);
System.out.println(i);
返回正值是代表左侧日期大于参数日期,反之亦然,日期格式必须一致
3 转成date格式换成秒数比较秒数大小,getTime()方法
Date sd1=df.parse(beginTime);
Date sd2=df.parse(endTime);
long long1 =sd1.getTime();
long long2= sd2.getTime();
另附日期和string的互转方法:
1 Date转String
Date d=new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String ds=df.format(d);
2 String转Date
String ds=new String("2017-06-09 10:22:22");
Date sd=df.parse(ds);
二十九.Java List转换为字符串并加入分隔符
public String listToString(List list, char separator) {
return org.apache.commons.lang.StringUtils.join(list.toArray(),separator);
}
三十.获取对象集合中某个属性的集合
通过Java8中stream流实现
List<String> nameList = userList.stream().map(User::getName).collect(Collectors.toList());