Java常用API

Java常用API 1.包同一包下的程序可以直接访问访问其他包下的程序必须导包才可以访问自动导包file----setting----auto import----add unambiguous imports on the fly导包格式import 包名.类名自己的程序中调用Java提供的程序也需要先导包才可以使用Java.lang包下的程序是不需要导包的可以直接使用访问多个其他包下的程序这些程序名又一样的情况下默认只能导入一个程序另一个程序必须带包名和类名来访问2.String1.创建String对象String name张三 String rsnew String(张三); //字符数组 char[] chars {a, d, e}; String rs new String(chars); System.out.println(rs);//ade //字节数组 byte[] bytes {97, 98, 99}; String rs1 new String(bytes); System.out.println(rs1);//abc2.String中的方法1.获取字符串的长度String name张三; System.out.println(name.length()); name李四; System.out.println(name);2.提取字符串中某个索引位置处的字符String name张三; System.out.println(name.length()); char atname.charAt(0); System.out.println(at);3.字符串的遍历String name张三; System.out.println(name.length()); char atname.charAt(0); System.out.println(at); for (int i 0; i name.length(); i) {//快捷键name.length().fori char char1name.charAt(i); System.out.println(char1); }4.把字符串转换成字符数组再进行遍历String name张三; char[]chars1name.toCharArray(); for (int i 0; i chars1.length; i) { System.out.println(chars1[i]); }5.判断字符串内容内容一样就返回trueString s1张三; String s2李四; System.out.println(s1.equals(s2));//内容比较 System.out.println(s1s2);//地址比较6.忽略大小写比较字符串内容String s1张三; String s2李四; System.out.println(s1.equals(s2));//内容比较 System.out.println(s1s2);//地址比较 System.out.println(s1.equalsIgnoreCase(s2));7.截取字符串内容包前不包后String s3java; String rs3s3.substring(0,4); System.out.println(rs3);8.截取从当前索引位置一直到字符串的末尾的内容String s3java; String rs3s3.substring(0,4); System.out.println(rs3); System.out.println(s3.substring(2));9.把字符串中的某个内容替换成新内容并返回新的字符串对象给我们String info这个电影垃圾; System.out.println(info.replace(垃圾, **));10.判断字符串中是否包含某个关键字String info1java; System.out.println(info1.contains(ja));11.把字符串按照某个指定内容分割成多个字符串放到一个字符数组中返回给我们String s4张三,李四,王五; String[] split s4.split(,); for (int i 0; i split.length; i) { System.out.println(split[i]); }注意事项通过new方式创建字符串对象每new一次都会产生一个新的对象放在堆内存中String的对象是不可变字符串对象String s5new String(a);//创建2个对象 String s6new String(a); System.out.println(s5s6);//false String s7a;//创建0个对象 String s8a; System.out.println(s7s8);//true public class StringText { public static void main(String[] args) { Scanner sc new Scanner(System. in); System.out.println(欢迎进入该网站~); for (int i 4; i0; i--) { System.out.println(请你输入你的名字); String username sc.next(); System.out.println(请你输入你的密码); String password sc.next(); boolean login login(username, password); if (login){ System.out.println(欢迎登录你的账号); break; }else { System.out.println(你输入的名字或者密码有错误); } } System.out.println(createCode(6)); ​ } public static boolean login(String username,String password){ String okLoginUsernameitheima; String okLoginPassword123456; if (password.equals(okLoginPassword)username.equals(okLoginUsername)){ return true; }else { return false; } ​ ​ } public static String createCode(int a){ String password; String data1234567890zxvcbnmasdfghjklqwertyuiop; for (int i 0; i a; i) { Random randomnew Random(); int index random.nextInt(data.length()); passworddata.charAt(index); } return password; } }3.包装类基本数据类型引用数据类型byteByteshortShortintIntegerlongLongfloatFloatcharCharacterdoubleDoublebooleanBoolean1.基本数据类型包装成对象Integer aInteger.valueOf(12); System.out.println(a); Integer b12;//自动装箱 int deb;//自动拆箱2.把基本数据类型转换成字符串类型Integer b12;//自动装箱 int deb;//自动拆箱 //第一种方法 String string Integer.toString(b); System.out.println(string); System.out.println(string1);//起连接符的作用 //第二种方法 String swb; System.out.println(sw); //第三种方法 String desb.toString(); System.out.println(des);3.把字符串类型的数值传化成基本数据类型String deo23; Integer i Integer.valueOf(deo); System.out.println(i);4.StringBuild,StringJoiner1.StringBuild拼接内容StringBuilder stringBuildernew StringBuilder(a); stringBuilder.append(dedsw).append(deisws).append(swijiw);//链式编程 System.out.println(stringBuilder);反转内容StringBuilder stringBuildernew StringBuilder(a); stringBuilder.append(dedsw).append(deisws).append(swijiw); System.out.println(stringBuilder); stringBuilder.reverse(); System.out.println(stringBuilder); System.out.println(stringBuilder.length());//返回字符串的长度 String string1 stringBuilder.toString(); System.out.println(string1);//转换成String类型2.StringJoinerStringJoiner stringJoinernew StringJoiner(,,[,]);//间隔符开始符结束符 int[]arr{1,2,3,4}; for (int i1 0; i1 arr.length; i1) { stringJoiner.add(arr[i1]);//非字符串类型需要“” } System.out.println(stringJoiner.toString());//转换成String类型返回结果5.BigDecimal用于解决浮点型运算时出现结果失真的问题将小数变成字符串封装成BigDecimal对象来运算double swq0.1; double dep0.2; BigDecimal swq1BigDecimal.valueOf(swq); BigDecimal dep1BigDecimal.valueOf(dep); BigDecimal cswq1.add(dep1);//加法 BigDecimal c1swq1.subtract(dep1);//减法 BigDecimal c2swq1.multiply(dep1);//乘法 BigDecimal c3swq1.divide(dep1,2, RoundingMode.HALF_UP);//除法----除数精确小数位四舍五入 System.out.println(c); System.out.println(c1); System.out.println(c2); System.out.println(c3);九.日期时间1.Date//创建Date对象 Date datenew Date(); System.out.println(date); //拿到时间毫秒值 long time date.getTime(); System.out.println(time); //把时间毫秒值转化成日期对象10s之后的时间 time10*1000; Date d2new Date(time); System.out.println(d2); //直接把日期对象的时间通过settime方法进行修改 date.setTime(232334342);//只能设置毫秒值 System.out.println(date);2.SimpleDateFormatDate dnew Date(); //解析日期时间成为字符串时间 SimpleDateFormat sdfnew SimpleDateFormat(yyyy-MM-dd); String format sdf.format(d); System.out.println(format); //解析字符串时间成为日期时间 String datestr2011-12-23; SimpleDateFormat sdf2new SimpleDateFormat(yyyy-MM-dd); Date date1 sdf2.parse(datestr); System.out.println(date1);时间格式常见符号时间y年M月d天H小时m分s秒EEE星期几a上下午2022-11-22 13:27:02 -------yyyy-MM-dd HH:mm:ss3.Calendar代表系统此刻时间对应的日历通过它可以单独获取时间中的年月日时分秒等//创建日历对象 Calendar nowCalendar.getInstance(); System.out.println(now); //获取日历中的某个信息 int i1 now.get(Calendar.YEAR); int i2 now.get(Calendar.MONTH);//月从0开始 int i3 now.get(Calendar.DAY_OF_MONTH); System.out.println(i1); System.out.println(i2); System.out.println(i3); //拿到日历中记录的日期对象 Date date2now.getTime(); System.out.println(date2); long time1 date2.getTime();//拿到毫秒值 System.out.println(time1); //修改日历中的某个信息 now.set(Calendar.MONTH,9); System.out.println(now.get(Calendar.MONTH)); //为某个信息增加或者减少多少 now.add(Calendar.DAY_OF_MONTH,10); now.add(Calendar.MONTH,-1);4.JDK8新增时间LocalDate:年月日LocalTime:时分秒LocalDateTime:年月日时分秒ZoneId:时区ZoneDateTime:带时区的时间获取对象格式LocalDate 对象名LocalDate.now();JDK8修改时间后计算但系统时间不可变//创建对象以LoacalDate为例 System.out.println(-------------------); LocalDate localDate LocalDate.now(); System.out.println(localDate);//获取系统时间 //获取日期对象中的信息 int year localDate.getYear(); System.out.println(year); //直接修改某个信息 LocalDate localDate1 localDate.withYear(2099); LocalDate localDate2 localDate.withMonth(10); LocalDate localDate3 localDate.withDayOfMonth(20); System.out.println(localDate1); System.out.println(localDate2); System.out.println(localDate3); //把某个信息增加减少多少 LocalDate years localDate.plusYears(12); System.out.println(years); LocalDate years1 localDate.minusYears(34); System.out.println(years1);//JDK8系统时间不可变 //获取指定日期的LocalDate对象 LocalDate localDate4 LocalDate.of(2099, 12, 23); System.out.println(localDate4); //判断2个日期是否相等在前还是在后 LocalDate localDate5 LocalDate.of(2022, 12, 23); boolean equals localDate4.equals(localDate5); boolean after localDate4.isAfter(localDate5); boolean before localDate4.isBefore(localDate5); System.out.println(equals); System.out.println(after); System.out.println(equals); //时区 //获取系统默认的时区对象 ZoneId zoneIdZoneId.systemDefault(); System.out.println(zoneId); //获取系统默认时间 ZonedDateTime zonedDateTimeZonedDateTime.now(); System.out.println(zonedDateTime); ZonedDateTime zonedDateTime1 zonedDateTime.withYear(2312); System.out.println(zonedDateTime1); System.out.println(zonedDateTime.plusYears(34)); System.out.println(zonedDateTime.minusYears(2)); boolean equals1 zonedDateTime.equals(zonedDateTime1); System.out.println(equals1); //查看所有时区 SetString availableZoneIds ZoneId.getAvailableZoneIds(); System.out.println(availableZoneIds);//ctrlF 搜索时区 //把某个时区Id封装成ZoneId对象 ZoneId zoneId1ZoneId.of(America/New_York); ZonedDateTime now1 ZonedDateTime.now(zoneId1); System.out.println(now1);//获取这个时区的时间 //获取世界标准时间 System.out.println(ZonedDateTime.now(Clock.systemUTC()));5.InstantInstant对象的作用:记录用户的操作时间点//Instant //创建Instant对象获取此刻时间信息 Instant instantInstant.now(); System.out.println(instant); //获取总秒数 System.out.println(instant.getEpochSecond()); //加减法 System.out.println(instant.plusNanos(111));//加法 System.out.println(instant.minusNanos(239));//减法 //Instant对象的作用 //记录用户的操作时间点 Instant startTimeInstant.now(); System.out.println(startTime); for (int j 0; j 10 ; j) { System.out.println(j); } Instant upTimeInstant.now(); System.out.println(upTime); //判断日期在前还是在后 boolean equals2 startTime.equals(upTime); boolean before1 startTime.isBefore(upTime); boolean after1 startTime.isAfter(upTime); System.out.println(equals2); System.out.println(before1); System.out.println(after1);6.DateTimeFormatter//解析日期时间成为字符串时间 LocalDate localDate6LocalDate.now(); DateTimeFormatter dtfDateTimeFormatter.ofPattern(yyyy-MM-dd); String format1 dtf.format(localDate6); System.out.println(format1); //解析字符串时间成为日期时间 String tdfStr2045-10-12 12:02:23;//注意月日必须是双位数对应MM,dd DateTimeFormatter dateTimeFormatterDateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss); LocalDateTime parse LocalDateTime.parse(tdfStr,dateTimeFormatter); System.out.println(parse);7.Period,Duration1.Period用来计算LocalDate对象相差的年数月数日数LocalDate ldLocalDate.of(2011,2,21); LocalDate ld2LocalDate.of(2022,1,1); Period between Period.between(ld, ld2); System.out.println(between.getYears()); System.out.println(between.getDays());2.Duration用来计算两个时间对象相差的天数月数日数秒数LocalDateTime ldtLocalDateTime.of(2011,1,1,12,23,34); LocalDateTime ldt1LocalDateTime.of(2031,2,3,10,47,30); Duration between1 Duration.between(ldt, ldt1); System.out.println(between1.getSeconds());//相差多少秒 System.out.println(between1.getNano());//相差多少纳秒