API的使用
- 什么是API
API (Application Programming Interface) :应用程序编程接口 - java中的API
- 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来**,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可**,我们可以通过帮助文档来学习这些API如何使用。
String类_
String 类代表字符串
,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!
String str = “abc” ;
- 字符串不可变,它们的值在创建后不能被更改
- 虽然 String 的值是不可变的,但是它们可以被共享
- 字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )
String类的构造方法_
//构造方法
public String() //创建一个空白字符串对象,不含有任何内容 ""
public String(char[] chs) //根据字符数组的内容,来创建字符串对象 char[]--->String
public String(byte[] bys) //根据字节数组的内容,来创建字符串对象 byte[]--->String
public String(byte[] bytes, int offset, int length)
public String(char[] value, int offset, int count)
public String(String original)
//直接赋值(推荐)
String s = "abc"; // 用直接赋值的方式创建字符串对象,内容就是abc
创建字符串对象两种方式的区别_
- 通过构造方法创建
通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
- 直接赋值方式创建
以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护
示例:
public class demo {
public static void main(String[] args) {
//用构造方法来得到对象
char cr[] = {'a', 'b', 'c'};
String s = new String(cr); // "abc"
String s2 = new String(cr);// "abc"
System.out.println(s == s2); // 输出 false 在不同的地址
//用直接赋值的方式
String s3 = "abc"; // "abc"
String s4 = "abc"; // "abc"
System.out.println(s3 == s4); // 输出 true 它们指向同一个地址
}
}
字符串的比较_
字符串比较的方法:public boolean equals(Object obj); // 比较字符串内容是是否相同
- 注意:
参数类型为Object类型,那么可以传一切类的对象
比较字符串内容一定要使用String类的equals方法,不要用==比较运算符
示例:
public class demo1 {
public static void main(String[] args) {
//用String 来创建一个对昂
String str = "HelloWorld";
//比较字符串内容是否相同
System.out.println(str.equals("Hello" + "World")); // true
//用String 的构造方法来创建一个对象
char a[] = {'H','e','l','l','o'};
String str2 = new String(a);
String str3 = new String(a);
System.out.println(str2.equals(str3)); // true
}
}
遍历字符串_
方法:
public char charAt(int index):返回指定索引处的char值,字符串的索引也是从0开始的
public int length():返回此字符串的长度
示例:
public class demo2 {
public static void main(String[] args) {
String str = "Hello World!";
// str.length() 返回字符串的长度
for (int i = 0; i < str.length(); i++) {
// charAt(int index) 返回指定索引处的char 值
System.out.println(str.charAt(i));
}
}
}
StringBuilder类_
- StringBuilder 是一个可变的字符串类
String和StringBuilder的区别:
- String表示的字符串内容是不可变的
- StringBuilder表示的字符串内容是可变的
// StringBuilder 构造方法
public StringBuilder(); // 创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str); // 根据字符串的内容,来创建可变字符串对象
示例:
public class demo3 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
System.out.println("sb = " + sb);
System.out.println("sb.length = " + sb.length());
StringBuilder sb2 = new StringBuilder("Hello");
System.out.println("sb2 = " + sb2);
System.out.println("sb2.length = " + sb2.length());
}
}
StringBuilder 添加 和 反转方法_
// 向后添加
public StringBuilder append(任意类型); // 添加数据,并返回对象本身
// 反转方法
public StringBuilder reverse(); //返回相反的字符序列
示例:
import java.util.Scanner;
public class demo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 从键盘接收字符串 给StringBuilder创建的对象
StringBuilder sb = new StringBuilder(sc.nextLine());
// 给StringBuilder创建的对象后面加上hello 并反转输出
System.out.println(sb.append("hello").reverse());
// 也可以这样写
System.out.println(new StringBuilder(new Scanner(System.in).nextLine()).append("Helloworld").reverse());
}
}
StringBuilder 和 String 相互转换_
- StringBuilder 转换为 String
public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
- String 转换为 StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder
示例:
public class demo5 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello");
// StringBuilder 转为String输出
String str2 = sb.toString();
System.out.println("str2 = " + str2);
//把 String 转为 StringBuilder输出
StringBuilder sb2 = new StringBuilder(str2);
System.out.println("sb2 = " + sb2);
}
}