1 什么是API
API (全称 Application Programming Interface:应用程序编程接口),就是别人写好的一些程序,给咱们程序员直接拿去调用即可解决问题的。
2 API文档
API文档相当于字典,是用来查阅API的详细使用方法的,里面有各种API的含义。这里给出了官网的API查阅地址:https://docs.oracle.com/javase/8/docs/api/
3 String
String代表字符串对象,可以用来封装字符串数据,并提供了很多操作字符串的方法。
1 创建对象
String创建对象封装字符串数据的方式:
1,Java 程序中的所有字符串文字都为此类的对象。直接使用(''....'' )来定义字符串
public class Test {
public static void main(String[] args) {
String name = "羊刀";
}
}
2, 调用String类的构造器初始化字符串对象。
public class Test {
public static void main(String[] args) {
String s = new String("羊刀");
char[] chars = {'羊','刀'};
String s1 = new String(chars);//羊刀
byte[] bytes = {97,98,99};
String s2 = new String(bytes);//abc /ASCII编码/
}
}
2 封装字符串数据
调用String类提供的构造器初始化字符串对象,封装数据。
3 调用String方法
public static void main(String[] args) {
String s = "羊刀配无尽";
System.out.println(s.length());//获取字符串长度 5
char c =s.charAt(1);//获取索引为一的字符,索引从零开始
System.out.println(c);//刀
//字符串的遍历
for (int i = 0; i < s.length(); i++) {
//i = 0,1,2,3,4,5
char c1 = s.charAt(i);
System.out.print(c1+" ");//羊 刀 配 无 尽
}
//把字符串转换成字符数组,再进行遍历
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.print(chars[i]);//羊刀配无尽
}
//判断字符串内容是否相等
String s1 = new String("无尽");
String s2 = new String("无尽");
System.out.println(s1 == s2);// false 比较的是地址
System.out.println(s1.equals(s2)); // true 比较的是内容
//忽略大小写比较字符串内容
String a1 = "YangDao";
String a2 = "yangdao";
System.out.println(a1.equalsIgnoreCase(a2));//true 通常应用于验证码
//截取字符串
String a3 = "厄斐琉斯必须要给羊刀";
System.out.println(a3.substring(0, 4));//厄斐琉斯 包前不包后
//从当前位置一直到字符串末尾
System.out.println(a3.substring(4)); //必须要给羊刀
//把字符串中的某个内容替换成新的内容并且返回新的字符串对象
String a4 = "垃圾游戏,狗都不玩";
System.out.println(a4.replace("垃圾", "**"));//**游戏,狗都不玩
//判断字符串中是否包含某个关键字
System.out.println(a3.contains("羊刀"));//true
//判断字符串是否以某个字符串开头
System.out.println(a3.startsWith("厄"));//true
//分割字符串,放到一个字符串数组中并返回
String a5 = "羊刀,无尽,泰坦,饮血剑,杀人剑";
String[] names = a5.split(",");
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);/*羊刀
无尽
泰坦
饮血剑
杀人剑*/
}
}
4.String 使用时的注意事项
(1)String对象的内容不可以改变,被称为不可变字符串对象。注意:只要是以“...”方式写出的字符串对象,会在堆内存中的字符串常量池中存储。每次试图改变字符串对象实际上是新产生了新的字符串对象了,变量每次都是指向了新的字符串对象,之前字符串对象的内容确实是没有改变的,因此说String的对象是不可变的。
(2)只要是以“...”方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份; 但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。