Java 的API(API: Application(应用) Programming(程序) Interface(接口))
Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。
在JDK安装目录下有个src.zip文件,这个文件解压缩后里面的内容是所有Java类的源文件。可以在其中查看相对应的类的源码。
scanner类:
Object类:
https://blog.csdn.net/krismile__qh/article/details/88684653
Date类,升级版Calendar类,以及SimpleDateFormat类
String类转Date类:要throws ParseException
Calendar类下的常量:YEAR,MONTH,DAY_OF_WEEK,DAY_OF_MONHT,DAY_OF_YEAR;
Calendar下的普通方法:
int get(Calendar.常量) 返回给定日历(年月日)的值。
void set(Calendar.常量,value) 设置给定日历(年月日)的值。
void add(Calendar.常量, int addnum)据日历的规则,为给定的日历字段添加或减去指定的时间量。
Int getActualMaximum(Calendar.常量) 给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值。
Int getActualMinimum(Calendar.常量) 给定此 Calendar 的时间值,返回指定日历字段可能拥有的最小值。
Math类和Random类:
Math类是工具类,其方法属性都是静态的!
Math.random();//返回0-1之间的随机数
Random random = new Random(); random.nextInt(int n);//返回0-n之间的整数(前包后不包)
Arrays类:
是工具类,此类包含用来操作数组(比如排序和搜索)的各种方法。
Arrays.sort(int[] arr);//对arr数组按照升序进行排序
String str = Arrays.toString(int[] arr);//返回数组的字符串表示形式
int index = Arrays.binarySearch(int[] arr , int key);//查找数组中key的位置,查找失败返回-1
String类:
字符串是常量,它们的值在创建之后就不能更改;详见:https://blog.csdn.net/krismile__qh/article/details/88766369
各种方法的介绍可以看各个jdk版本下的API。
1. 常见构造方法:
String() | 创建出一个字符串对象,此字符串中没有任何字符,空字符串 |
String(String str) | 初始化一个新创建的String对象,使其表示一个与参数相同的字符序列 |
2.普通方法:
获取字符串长度:int len = str.length();
获取某个字符或者字符串在原字符串中第一次出现的位置:
int indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch, int fromIndex)
返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
int indexOf(String str)
返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str, int fromIndex)
返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。//注:查询没有结果时返回-1
获取某个字符或者字符串在原字符串中最后一次出现的位置:
int lastIndexOf(int ch)
返回指定字符在此字符串中最后一次出现处的索引。
int lastIndexOf(int ch, int fromIndex)
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
int lastIndexOf(String str)
返回指定子字符串在此字符串中最右边出现处的索引。
int lastIndexOf(String str, int fromIndex)
返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
获取某个位置上的字符:
char charAt(int index) 返回指定索引处的 char 值。
判断字符串中是否包含某个子字符串:
boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true。
判断字符串中是否有内容:
boolean isEmpty() 当且仅当 length() 为 0 时返回 true。
str = "";//true str = null;//空指针异常 new str //true str = "null";//false
判断字符串是否是以某个前缀/后缀开始/结尾的:
boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始。
boolean endsWith(String suffix); //测试此字符串是否以指定的后缀结束。
判断字符串的内容是否相等:
boolean equals(Object anObject) 将此字符串与指定的对象比较。
忽略大小写进行比较:
boolean equalsIgnoreCase(String anotherString);//将此 String 与另一个 String 比较,不考虑大小写。
替换 :
String replace(char oldChar, char newChar) //返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replace(CharSequence target, CharSequence replacement) //使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
截取:
String substring(int beginIndex) // 返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex, int endIndex) //返回一个新字符串,它是此字符串的一个子字符串。 //前包后不包
去除前面和尾部的空格:
String trim() //返回字符串的副本,忽略前导空白和尾部空白。
格式化字符串:将字符串按照指定的格式输出
static String format(String format, Object... args) //使用指定的格式字符串和参数返回一个格式化字符串。
%f float
%d 整型
%s 字符串
%c char
%b boolean
eg:String string3 = String.format("%.2f--%b--%s",10.23766f,true,"hello");System.out.println(string3);//输出:10.24--true--hello
比较:
int compareTo(String anotherString) // 按字典顺序比较两个字符串。
int compareToIgnoreCase(String str) //按字典顺序比较两个字符串,不考虑大小写。
//如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。
如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。
如果这两个字符串相等,则结果为 0
拼接:
String concat(String str)//将指定字符串连接到此字符串的结尾。
注意:在String类中,但凡返回值是String类型的方法,生成的都是一个新的字符串,跟原来的字符串没有关系。
将字符串转换为一个新的字符数组:
char[] str.tocharArray()
拆分:
String[] str.split(String regex)//根据给定的字符串拆分此字符串
StringBuffer类:
字符串缓冲区。字符串缓冲区支持可变的字符串。
StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
1. 常用构造方法:
StringBuffer(String str) | 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。 |
---|---|
StringBuffer() | 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。 |
2.普通方法:
增加:
StringBuffer append(String str)
StringBuffer insert(int offset, String str)
删除:
StringBuffer delete(int start, int end)
StringBuffer deleteCharAt(int index)
修改:
StringBuffer replace(int start, int end, String str)
void setCharAt(int index, char ch)
获取://和String类相同
indexOf
lastIndexOf
charAt
length
substring
反转:StringBuffer reverse()
StringBuilder类:
StringBuilder类也是字符串缓冲区,类中的方法与StringBuffer类中的方法使用方法一样,区别在于StringBuilder类中的方法都是线程不安全的,而StringBuffer类中的方法都是线程安全的
正则表达式:regex
正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。
涉及regex的常用方法:
正则表达式校验有两种方式:
1.string . matches ( regex );
2. Pattern Matcher
String regex = "1[35678]\\d{9}";
String phoneNum="134567891000";
//输入一个正则表达式的String,对其进行格式化,将regex编译到模式中
Pattern pattern = Pattern.compile(regex);
//通过matcher方法 获取到Matcher这个类的对象
Matcher matcher = pattern.matcher(phoneNum);
//matches 通过该方法比对
boolean result2 =matcher.matches();
System.out.println(result2);
//find() 正则与字符串中整体与局部匹配,如果局部某一部分匹配到,可以通过group方法返回匹配的结果
while(matcher2.find()) {
System.out.println(matcher2.group());
}
包装类:
实现字符串与基本数据之间转换。基本数据类型对象包装类:java将基本数据类型值封装成了对象。可以提供更多的操作基本数值的功能。
1. 将字符串转成基本类型:
2. 将基本数值转成字符串有3种方式:
a. 基本类型直接与””相连接即可;34+""
b. 调用String的valueOf方法;String.valueOf(34) ;
c. 调用包装类中的toString方法;Integer.toString(34) ;
3. 基本类型和对象转换
使用int类型与Integer对象转换进行演示,其他基本类型转换方式相同。
a. 基本数值---->包装对象
Integer i = new Integer(4);//使用构造函数函数
Integer ii = new Integer("4");//构造函数中可以传递一个数字字符串
Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法
Integer iiii = Integer.valueOf("4");//使用包装类中的valueOf方法
b. 包装对象---->基本数值
int num = i.intValue();
4. 自动装箱拆箱
在需要的情况下,基本类型与包装类型可以通用。有些时候我们必须使用引用数据类型时,可以传入基本数据类型。
比如:
基本类型可以使用运算符直接进行计算,但是引用类型不可以。而基本类型包装类作为引用类型的一种却可以计算,原因在于,Java”偷偷地”自动地进行了对象向基本数据类型的转换。
相对应的,引用数据类型变量的值必须是new出来的内存空间地址值,而我们可以将一个基本类型的值赋值给一个基本类型包装类的引用。原因同样在于Java又”偷偷地”自动地进行了基本数据类型向对象的转换。
- 自动拆箱:对象转成基本数值
- 自动装箱:基本数值转成对象
Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5; 加法运算完成后,再次装箱,把基本数值转成对象。