API是Java语言的帮助文档,API里面记录了Java程序运行所需的核心类,并对这些类的继承关系、构造方法以及方法进行了详细的描述。
一、Object类
类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
1、常用的构造方法
Object类的构造方法只有一个无参的构造方法:Object()
2、常用的方法
(1)toString()
返回值类型:String类型
参数列表:无参
作用:返回该对象的字符串表示
使用方法:一般使用过程中需要重写toString()方法,因为直接用对象名调用toString()方法返回的是对象的地址值。重写toString方法可以通过快捷键的方式进行重写:shift + alt + s -->选择Generate toString()。
(2)equals
返回值类型:boolean
参数列表:Object类的对象
作用:指示其他某个对象是否与此对象“相等”。
使用方法:一般在使用过程中需要重写equals()方法,因为直接调用方法比较的是两个对象的地址值。要想比较两个对象的内容需要重写equals()方法,可以通过快捷键进行重写:shift + alt + s -->选择Generate hasCode() and equals() -->删除重写的hasCode()方法
例:
//学生类
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// 重写toString()方法
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
// 重写equals()方法
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
//测试类
public class Test {
public static void main(String[] args) {
Student s1 = new Student("张三", 20);
Student s2 = new Student("李四", 25);
Student s3 = new Student("李四", 25);
// 调用toString()方法
System.out.println(s1.toString());// Student [name=张三, age=20]
System.out.println(s2.toString());// Student [name=李四, age=25]
// 调用equals()方法
System.out.println(s1.equals(s2));// false
System.out.println(s2.equals(s3));// true
}
}
二、String类
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
1、构造方法
(1)String(String original)
作用:把字符串数据封装成字符串对象。
String s1 = new String("hello");
(2)String(char[] value)
作用:把字符串数组的数据封装成字符串对象。
char[] value = {'h','e','l','l','o'};
String s2 = new String(value);
(3)String(char[] value, int index, int count)
作用:把字符数组的一部分封装成字符串对象。
String s3 = new String(value, 0 , value.length());
(4)最常用的构造方法
String s4 = "hello";
String类创建对象的特点:
通过构造方法创建对象和通过直接赋值的方式创建对象是有区别的。
通过构造方法创建的字符串对象实在堆内存。
通过直接赋值的方式创建的字符串对象实在方法区的常量池。
String s1 = new String("hello");
String s2 = new String("hello");
String s3 = "hello";
String s4 = "hello";
System.out.println(s1 == s2);//false
System.out.println(s1 == s2);//false
System.out.println(s1 == s2);//true
2、方法
(1)charAt()
返回值类型:char
参数列表:int index
作用:返回index索引处的字符
public class StringDemo {
public static void main(String[] args) {
String s1 = "hello";
// 获取字符串中的一个字符
char c = s1.charAt(0);
System.out.println(c);// h
// charAt()方法的应用:遍历字符串
for (int i = 0; i < s1.length(); i++) {
System.out.println(s1.charAt(i));
}
System.out.println("---------------");
// 遍历字符串的另一种方法:调用String类中toCharArray()方法
char[] ch = s1.toCharArray();
for (int i = 0; i < ch.length; i++) {
System.out.println(ch[i]);
}
}
}
(2)getByte()
返回值类型:byte[]
参数列表:无参
作用:将字符串转换成byte类型的数组
public class StringDemo2 {
public static void main(String[] args) {
String s = "hello";
byte[] b = s.getBytes();
for (int i = 0; i < b.length; i++) {
System.out.println(b[i]);
}
}
}
(3)indexOf()
返回值类型:int
参数列表:String str
作用:返回指定字符串在此字符串中第一次出现的索引。
public class StringDemo3 {
public static void main(String[] args) {
String s = "hello";
int index = s.indexOf("e");
System.out.println(index);
}
}
(4)isEmpty()
返回值类型:boolean
参数列表:无参
作用:当且仅当length()为零时返回true
public class StringDemo4 {
public static void main(String[] args) {
String s = "hello";
boolean b = s.isEmpty();
System.out.println(b);
}
}
(5)replaceAll()
返回值类型:String
参数列表:String regex, String replacement
作用:使用给定的 replacement 替换此字符串中所有匹配给定的的子字符串regex。
public class StringDemo5 {
public static void main(String[] args) {
String s = "hello world java";
String s2 = s.replaceAll("o", "x");
System.out.println(s2);
}
}
(6)split()
返回值类型:String[]
参数列表:String regex
作用:根据指定的字符串拆分此字符串
public class StringDemo6 {
public static void main(String[] args) {
String s = "ohello word java";
String[] split = s.split("o");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
}
}
}
注意:如果字符串两端出现了需要分割的字符,在首位的字符串前会出现一个空字符串的元素,末尾则不会产生。
(7)subString()
返回值类型:String
参数列表:int beginIndex 或者 int beginIndex, int endIndex
作用:从beginIndex开始截取字符串到最后,包括beginIndex所在的那个字符,产生新的字符串并返回;
从beginIndex开始截取字符串到endIndex结束,包括beginIndex所在的那个字符但不包括endIndex所在的字符,产生新的字符串并返回。
public class StringDemo7 {
public static void main(String[] args) {
String s = "hello world java";
String newString = s.substring(6);
System.out.println(newString);
String newString2 = s.substring(6, 11);
System.out.println(newString2);
}
}
(8)toLowerCase() 和 toUpperCase()
返回值类型:String
参数列表:无参
作用:将此 String 中的所有字符都转换为小写;
将此 String 中的所有字符都转换为大写。
public class StringDemo8 {
public static void main(String[] args) {
String s1 = "Hello World Java";
String s2 = s1.toLowerCase();
System.out.println(s2);
String s3 = s1.toUpperCase();
System.out.println(s3);
}
}
(9)startsWith() 和 endsWith()
返回值类型:boolean
参数列表:String prefix ;String sufffix
作用:判断字符串是否以prefix这个字符串开头;
判断字符串是否以suffix这个字符串结尾;
public class StringDemo9 {
public static void main(String[] args) {
String[] s = { "张三", "张四", "李四", "王五", "李五", "张五" };
for (int i = 0; i < s.length; i++) {
if (s[i].startsWith("张")) {
System.out.println(s[i]);
}
}
for (int i = 0; i < s.length; i++) {
if (s[i].endsWith("五")) {
System.out.println(s[i]);
}
}
}
}
(10)trim()
返回值类型:String
参数列表:无参
作用:去除首位空格,返回新的字符串
public class StringDemo10 {
public static void main(String[] args) {
String s = " hello world java";
String s2 = s.trim();
System.out.println(s2);
}
}