一.String类
1.概述
java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如"abc" )都可以被看作是实现此类的实例。
2.特点
- 字符串不变:字符串的值在创建后不能被更改。
String s1 = "abc";
s1 += "d";
System.out.println(s1); // "abcd"
// 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了"abcd"。
- String常量字符串,是可以被共享的。
String s1 = "abc";
String s2 = "abc";
// 内存中只有一个"abc"对象被创建,同时被s1和s2共享。
- “abc” 等效于 char[] data={ ‘a’ , ‘b’ , ‘c’ }。
String str = "abc";
相当于:
char[] data = {'a', 'b', 'c'};
String str = new String(data);
// String底层是靠字符数组实现的。
3.使用步骤
- 查看类
- java.lang.String :此类不需要导入。
- 查看构造方法
- public String() :初始化新创建的 String对象,以使其表示空字符序列。
- public String(char[] value) :通过当前参数中的字符数组来构造新的String。
- public String(byte[] bytes) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的String。
- public String(String original) 初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。
// 无参构造
String str = new String();
// 通过字符数组构造
char chars[] = {'a', 'b', 'c'};
String str2 = new String(chars);
// 通过字节数组构造
byte bytes[] = { 97, 98, 99 };
String str3 = new String(bytes);
能够明确String类的构造方法创建对象,和直接赋值创建字符串对象的区别
public static void main(String[] args) {
// 直接赋值创建字符串对象
String str1 = "abcd";//地址在方法区的常量区
// String类的构造方法创建对象
String str2 = new String("abcd");//地址在堆区
System.out.println(str1 == str2);// false == 比较的是地址值
}
- 查看成员方法
判断功能的方法
- public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
- public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写。
- public boolean isEmpty(); //判断字符串是否为空(长度为0返回true,不为0返回false)
- public boolean endsWith(); //判断字符串是否以 给定的字符串 结尾。
- public boolean startsWith(); //判断字符串是否以 给定的字符串 开头。
获取功能的方法
- public int length () :返回此字符串的长度。
- public String concat (String str) :将指定的字符串连接到该字符串的末尾。
- public char charAt (int index) :返回指定索引处的 char值。
- public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
- public int lastIndexOf(); //获取指定的字符 在字符串中 后一次出现的位置(索引),找不到返回-1
- public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
- public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。
转换功能的方法
- public char[] toCharArray () :将此字符串转换为新的字符数组。
- public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
- public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使用replacement字符串替换。
- public String toLowerCase(); 把字母都转成其对应的小写形式。
- public String toUpperCase(); 把字母都转成其对应的大写形式。
- public String trim(); 移除首尾空格
分割功能的方法
- public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。
注意:
特殊字符 | 和 . 在前面添加\\
String[] arr = str.split("\\|");
String[] arr = str.split("\\.");
二.Arrays类
1.概述
java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单。
特点:
1.Arrays类在java.util包,需要导包
2.Arrays类中的方法都是静态方法,所以可以直接使用类名调用
3.Arrays类主要用来操作数组的
2.常用方法
- public static String toString(int[] a) :返回指定数组内容的字符串表示形式。
public static void main(String[] args) {
// 定义int 数组
int[] arr = {2,34,35,4,657,8,69,9};
// 打印数组,输出地址值
System.out.println(arr); // [I@2ac1fdc4
// 数组内容转为字符串
String s = Arrays.toString(arr);
// 打印字符串,输出内容
System.out.println(s); // [2, 34, 35, 4, 657, 8, 69, 9]
}
- public static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序。
public static void main(String[] args) {
// 定义int 数组
int[] arr = {24, 7, 5, 48, 4, 46, 35, 11, 6, 2};
System.out.println("排序前:"+ Arrays.toString(arr)); // 排序前:[24, 7, 5, 48, 4, 46, 35, 11, 6, 2]
// 升序排序
Arrays.sort(arr);
System.out.println("排序后:"+ Arrays.toString(arr));// 排序后:[2, 4, 5, 6, 7, 11, 24, 35, 46, 48]
}
三.Math类
1.概述
java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。
- 特点:
- Math类在java.lang包,不需要导包
- Math类主要提供执行基本数学运算的方法
- Math.类中的方法也都是静态方法
- 可以直接使用类名调用
2.基本运算的方法
- public static double abs(double a) :返回 double 值的绝对值。
double d1 = Math.abs(-5); //d1的值为5
double d2 = Math.abs(5); //d2的值为5
- public static double ceil(double a) :返回大于等于参数的最小的整数。
double d1 = Math.ceil(3.3); //d1的值为 4.0
double d2 = Math.ceil(-3.3); //d2的值为 -3.0
double d3 = Math.ceil(5.1); //d3的值为 6.0
- public static double floor(double a) :返回小于等于参数最大的整数。
double d1 = Math.floor(3.3); //d1的值为3.0
double d2 = Math.floor(-3.3); //d2的值为-4.0
double d3 = Math.floor(5.1); //d3的值为 5.0
- public static long round(double a) :返回最接近参数的 long。(相当于四舍五入方法)
long d1 = Math.round(5.5); //d1的值为6.0
long d2 = Math.round(5.4); //d2的值为5.0
-
public static int max(int a,int b):返回两个数的最大值
-
public static int min(int a,int b):返回两个数的最小值