一、String
1.1转换形
方法的名称 | 方法的描述 |
public byte[] getBytes() | 将字符串转换为字节数组 |
public char[] toCharArray() | 将字符串转换为字符数组 |
public String toLowerCase() | 将所有的字符转换为小写 |
public String toUpperCase() | 将所有的字符转换为大写 |
public String concat(String str) | 在字符串末尾进行拼接(+) |
public String replace(char oldChar, charnewChar) | 替换字符串指定的内容 |
public String[] split(String regex) | 根据指定的字符来进行拆分 |
public String trim() | 去除首尾的空格 |
public static String valueOf(boolean b) | 将各种数据类型的数据转换为字符串类型的数据 |
1.2案例
step01 键盘录入一串字符 将字符中大写转换为小写 将小写转换为大写 数字以***来代替 例如:abc123KKAa ==>ABC***kkaA
step02 分析
A.将字符串拆分一个字符数组
B.遍历数组获取数组中每一个元素> 'a' < 'z' ==>转换为大写> 'A' < 'Z' ==>转换为小写> '0' < '9' ******
C.定义一个字符串进行重新拼接toLowerCase() toUpperCase() *
step03 代码
1.3字符串比较规则
二、StringBuffer
2.1简介
2.2StringBuffer与String比较
A.String是不可变的字符序列 StringBuffer 是可变的字符序列
B.String操作字符串的效率较低 StringBuffer 操作字符串的效率比较高
2.3StringBuffer与StringBuilder比较
A.版本不一样 StringBuffer 1.0 StringBuilder 1.5
B.多线程安全性 StringBuffer 多线程安全 StringBuilder 多线程不安全
C.操作字符效率 StringBuffer 效率低 StringBuilder 效率高
2.4构造方法
构造方法的名称 | 构造方法的描述 |
public StringBuffer() | 构建一个StringBuffer,初始容量为 16 个字符 |
public StringBuffer(intcapacity) | 构建一个StringBuffer,指定初始容量的字符串缓冲区 |
publicStringBuffer(String str) | 将字符串构建成一个StringBuffer对象,字符串的初始容量为 16 加上字符串参数的长度 |
2.5常用的方法
方法名称 | 方法描述 |
public StringBuffer append(boolean b) | 在末尾进行追加 |
public StringBuffer insert(int offset, boolean b) | 在指定的位置插入值 |
public int indexOf(String str) | 查找指定字符的索引值 |
public int capacity() | 获取内容的容量 |
public char charAt(int index) | 获取指定索引的内容 |
public StringBuffer deleteCharAt(int index) | 根据索引删除单个字符 |
public StringBuffer delete(int start, int end) | 根据区间来进行删除 |
public StringBuffer reverse() | 控制反转 |
public String substring(int start, int end) | 截取指定的字符 |
public String toString() | 转换为字符串 |
public int length() | 获取StringBuffer中内容的长度 |
public StringBuffer replace(int start, int end, String str) | 替换指定区间的内容 |
2.6案例
step01需求
step02分析
A.第一步只拼接数组中数据如果是最后一个元素 省略逗号如果是其它元素 拼接 元素 +"," append()
B.第二步 拼接:insert(int offset, boolean b)
C.控制反转: reverse()
step03代码
package com.gkd.test01; public class Test03 { public static void main(String[] args) { //定义一个StringBuffer对象 StringBuffer sb=new StringBuffer(); //定义int数组 int [] arr={10,20,30,40,50,60}; //使用循环遍历数组先把数据使用append进行拼接 for (int i=0;i<arr.length;i++){ if(i==arr.length-1){ sb.append(arr[i]); }else{ sb.append(arr[i]+","); } } //再把前面后面使用insert插入,反转使用reverse System.out.println(sb.insert(0,"Arrays[").insert(sb.length(),"]")); } }
2.7StringBuffer与String之间的转换
1、StringBuffer==>String
A.public String toString() toString()
B.public String(StringBuffer buffer) 构造方法
2、String ==>StringBuffer
A.public StringBuffer(String str) 构造方法
B.new StringBuffer().append(String str);
三、包装类
3.1简介
1.概念:将基本数据类型的数据封装成一个类 可以使用类的方法以及属性
2、罗列
3、特点:
int类型与char类型的包装比较特殊外 其他包装类都是首字母变为大写
基本数据类型 | 包装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
double | Double |
float | Float |
boolean | Boolean |
char | Character |
3.2Integer
3.2.1简介
A.Integer 类在对象中包装了一个基本类型 int 的值
B.该类提供了多个方法,能在 int 类型和 String 类型之间互相转换
C.提供了处理 int 类型时非常有用的其他一些常量和方法
3.2.2 常量
常量的名称 | 常量的描述 |
public static final int MAX_VALUE | 值为 231-1 的常量,它表示 int 类型能够表示的最大值 |
public static final int MIN_VALUE | 值为 -231 的常量,它表示 int 类型能够表示的最小值 |
public static final int SIZE | 表示 int 值的比特位数 |
public static final Class TYPE | 表示基本类型 int 的 Class 实例 |
3.2.3 构造方法
构造方法的名称 | 构造方法的描述 |
public Integer(int value) | 将int的值包装成包装类Integer |
public Integer(String s) | 将一个字符串的数值包装成Integer |
3.2.4 常用方法
方法的名称 | 方法的描述 |
public static StringtoBinaryString(int i) | 将十进制的整数转换为二进制字符串 |
static String toOctalString(int i) | 将十进制的整数转换为八进制字符串 |
public static StringtoHexString(int i) | 将十进制的整数转换为十六进制字符串 |
public int xxxValue() | 将Integer转换各种基本数据类型(xxx各种基本数据类型(整数类型)) |
public static int parseInt(String s)(重点) | 将字符串转换为整数类型 |
public static Integer valueOf(int i) | 返回一个表示指定的 int 值的 Integer 实例 |
public static IntegervalueOf(String s) | 指定的 String 的值的 Integer 对象 |
代码
3.2.5自动拆箱与自动装箱
1、装箱:将基本数据类型包装成包装类(引用数据类型)的过程(打包快递)
2、拆箱:将包装类(引用数据类型)拆成基本数据类型的过程拆快递(
3、在jdk1.5之后 自动拆箱与自动装箱
4、自动装箱:也就是将基本数据类型的变量(赋值给包装类的引用)
5、自动拆箱:将包装类的引用 赋值给基本数据类型的变量
3.2.6案例
step01
step02
A.根据空格来进行分割 split()
B.使用循环来遍历数组 String [] arrays将String转换Integer ==>parseInt()定义一个数组存入数组
C.冒泡排序
step03代码:
package com.gkd.test02; import java.util.Arrays; public class Test02 { public static void main(String[] args) { //定义一个字符串 String s="11 -11 -1 -101 123 21 12 101"; //根据空格啦进行拆分 String [] in =s.split(" "); //定义一个int数组 Integer [] arrays=new Integer[in.length]; //使用循环遍历数组 for(int i=0;i<in.length;i++){ arrays[i]=Integer.parseInt(in[i]); } //使用冒泡排序 // for(int i=0;i< arrays.length-1;i++){ // for (int j=0;j<arrays.length-1-j;j++){ // if(arrays[j]>arrays[j+1]){ // int temp=arrays[j]; // arrays[j]=arrays[j+1]; // arrays[j+1]=temp; // } // } // } //使用方法 Arrays.sort(arrays); System.out.println(Arrays.toString(arrays)); } }
四、Math
4.1简介
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。数学函数的操作类
4.2常量
常量名称 | 常量描述 |
public static final double E | 比任何其他值都更接近 e(即自然对数的底数)的 double 值。 |
public static final double PI | 比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。 |
4.3常用的方法
方法名称 | 方法描述 |
public static double abs(xxx a) | xxx值的绝对值(数据类型) |
public static double cbrt(double a) | 立方根 |
public static double sqrt(double a) | 正平方根 |
public static double ceil(double a) | 向上取整 |
public static double floor(double a) | 向下取整 |
public static long round(double a) | 四舍五入 |
public static double max(double a, double b) | 较大值 |
public static long min(long a, long b) | 较小值 |
public static double pow(double a, double b) | 返回第一个参数的第二个参数次幂的值 |
public static double random()(重点) | 于等于 0.0 且小于 1.0 |
代码:
package com.gkd.test02; public class Test03 { public static void main(String[] args) { //绝对值 System.out.println(Math.abs(10)); System.out.println(Math.abs(-10)); //正平方根 System.out.println(Math.sqrt(4)); //立方根 System.out.println(Math.cbrt(8)); System.out.println(); //比较大与比较小 System.out.println(Math.max(10,20)); System.out.println(Math.min(10,20)); //次方 System.out.println(Math.pow(2,3)); //随机数 System.out.println(Math.random()*10); //四舍五入 System.out.println(Math.round(1.2)); System.out.println(Math.round(1.8)); //向下取整 System.out.println(Math.floor(2.3)); System.out.println(Math.floor(2.6)); //向上取整 System.out.println(Math.ceil(2.3)); System.out.println(Math.ceil(2.6)); } }
五、System
5.1简介
A.System 类包含一些有用的类字段和方法。它不能被实例化 只提供了一个私有的构造方法
B. 在 System 类提供的设施中,有标准输入、标准输出和错误输出流;
5.2常量
方法的名称 | 方法的描述 |
public static final PrintStream err | “标准”错误输出流。此流已打开并准备接受输出数据 |
public static final InputStream in | “标准”输入流。此流已打开并准备提供输入数据。 |
public static final PrintStream out | “标准”输出流。此流已打开并准备接受输出数据。 |
代码:
package com.gkd.test02; import java.util.Scanner; public class Test04 { public static void main(String[] args) { System.out.println("嘿嘿嘿"); System.err.println("呵呵呵"); //实例化 Scanner input =new Scanner(System.in); System.out.println("请输入您的兴趣爱好:"); String s = input.next(); System.out.println(s); } }
5.3常用的方法
方法的名称 | 方法的描述 |
public static long currentTimeMillis() | 返回以毫秒为单位的当前时间 |
public static void exit(int status) | 终止当前正在运行的 Java 虚拟机。非 0 的状态码表示异常终止。 |
public static void gc() | 运行垃圾回收器。 |
代码:
package com.gkd.test02; public class Test05 { public static void main(String[] args) { System.out.println("今天的天气很热!"); System.out.println("小姐姐都穿着超短裤上街"); // System.exit(0); System.out.println("老王邀请凤舞上街去看大白腿………………"); long time = System.currentTimeMillis(); System.out.println(time/1000/60/60/24/365+"年"); } }
六、Date
6.1简介
1、类 Date 表示特定的瞬间,精确到毫秒。时间类
2、构造方法:
public Date() 初始化data 表示当前系统时间
public Date(long date) 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数
3、常用方法
public void setTime(long time)
设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点
public long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
七、Calendar
7.1简介
A.Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
B.瞬间可用毫秒值来表示 1970 年 1 月 1 日的 00:00:00.000
C.日历字段
public static final int YEAR 年
public static final int MONTH 月
public static final int DAY_OF_MONTH 日
public static final int HOUR 时
public static final int MINUTE 分钟
public static final int SECOND 秒钟
D.常用的方法
public static Calendar getInstance() 返回的 Calendar 基于当前时间
public final Date getTime() 将 Calendar 转换为Date
public final void setTime(Date date) 使用给定的 Date 设置此 Calendar 的时间
public void set(int field,int value) 将给定的日历字段设置为给定值
public int get(int field) 返回给定日历字段的值
public abstract void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
代码:
package com.gkd.test02; import java.util.Calendar; import java.util.Date; public class Test { public static void main(String[] args) { //获取Calendar Calendar cal=Calendar.getInstance(); //set-get cal.setTime(new Date()); //获取年 int y=cal.get(Calendar.YEAR); //获取月 int m=cal.get(Calendar.MONDAY); //获取日 int d=cal.get(Calendar.DAY_OF_MONTH); //获取时分秒 int h=cal.get(Calendar.HOUR_OF_DAY); int mi=cal.get(Calendar.MINUTE); int s=cal.get(Calendar.SECOND); System.out.println(y+"-"+m+"-"+d+"\t"+h+":"+mi+":"+s); Date d1=cal.getTime(); System.out.println(d1); //设置时间偏移 //小时 cal.add(Calendar.HOUR_OF_DAY,-5); System.out.println(cal.get(Calendar.HOUR_OF_DAY)); //小时 cal.add(Calendar.DAY_OF_MONTH,-5); System.out.println(cal.get(Calendar.DAY_OF_MONTH)); cal.add(Calendar.YEAR,-5); System.out.println(cal.get(Calendar.YEAR)); } }