【String和char、byte之间的转换】: String<—>char: String转char[]: str.toCharArray(); char[]转String: Arrays.toString(arr); new String(arr); new String(arr, 0, arr.length); String.valueOf(arr); String<—>byte: String转byte[]: str.getBytes(); // 使用默认的字符集 str.getBytes(“gbk”); // 使用指定字符集 byte[]转String: new String(arr); // 使用默认的字符集 new String(arr, “gbk”); // 使用指定字符集
【数组和集合之间的相互转换】: 数组—>集合: Arrays.asList: 注意: 1.工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,因为其本质还是数组,它的add/remove/clear方法会抛出UnsupportOperationException异常。 2.该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean)。 List list = Arrays.asList(arr); 集合—>数组: Collection接口的toArray()方法: 注意: 目标数组容量大于集合,剩余空间补null;否则创建新数组,长度等于集合大小。 ArrayList list = new ArrayList<>(); X[] a = new X[list.size()]; list.toArray(a); //此时没有创建新数组
【时间日期格式转换】: Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”); 日期转字符串:String str = format.format(date); 字符串转日期:date = format.parse(“2018-01-12”); Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH)+1; int day = calendar.get(Calendar.DATE); SimpleDateFormat有线程安全问题,使用jdk1.8的新API: DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”).format(LocalDateTime.now())
【java对象/json对象互转】: Json–>Java:
JSONObject json = JSONObject.fromObject(student);json.toString();json.get(“age”);Gson gson = new Gson();User user = gson.fromJson(jsonStr, User.class); Java–>Json:Student stu = (Student)JSONObject.toBean(json, Student.class);Gson gson = new Gson();String jsonStr = gson.toJson(user);