一、String概述
1.String是java定义好的一个类,定义在java.lang包下,这个包在使用的时候不用导包。
2.java程序中的所有字符串文字(例如:"abc")都被为此类的对象。
3.字符串不可变,它们的值在创建后不能被更改。
二、创建String对象的两种方式
1.直接赋值
String name = "abc";
2.new
构造方法 | 说明 |
public String() | 创建空白字符串,不含任何内容 |
public String(String original) | 根据传入的字符串,创建字符串对象 |
public String(char[ ] chs) | 根据字符数组,创建字符串对象 |
public String(byte[ ] chs) | 根据字符数组,创建字符串对象 |
public class Practice1 {
public static void main(String[] args) {
//使用new的方式来获取一个字符串对象
//空参构造:可以获得一个空白的字符串对象
String d2 = new String();
System.out.println("@" + d2 + "*");
//传递一个字符串,根据传递的字符串内容在创建一个新的字符串对象
String s3 = new String("abc");
System.out.println(s3);
//传递一个字符数组,根据字符数组的内容在创建一个新的字符对象
//需求:修改字符串的内容 {‘a’,'b','c'} > {'x','b','c'}
char[] chs1 = {'a','b','c','d','e'};
String s4 = new String(chs1);
System.out.println(s4);
//传递一个字符数组,根据字符数组的内容在创建一个新的字符对象
//应用场景:在网络中传输的数据其实都是字节信息
//我们一般会把字节信息进行转换,转换成字符串,此时就要用到这个构造
byte[] b1 = {97,98,99};
String s5 = new String(b1);
System.out.println(s5);
}
}
结果如下:
@*
abc
abcde
abc
三、字符串的比较
==号比的到底是什么?
1.基本数据类型比较的是数据值
int a = 10;
int b = 30;
System.out.print(a == b);//false
2.引用数据类型比较的是地址值
String s1 = new String("abc");
String s2 = new String("abc");
System.out.print(s1 == s2);//false
equals方法以及equalslgnoreCase
boolean equals(要比较的字符串) 完全一样结果才是true,否则为false
boolean equalslgnoreCase(要比较的字符串) 忽略大小写的比较
String s1 = new String("abc");
String s2 = "abc";
boolean r1 = s1.equals(s2);
System.out.println(r1);
//忽略大小写只能是英文状态下的a A
boolean r2 = s1.equalsIgnoreCase(s2);
System.out.println(r2);
结果:true
true
四、字符串的拼接、反转
字符串的拼接案例:
//把数组{1,2,3}拼接成[1,2,3]
public class Practice2 {
public static void main(String[] args) {
int[] arr = {1,2,3};
System.out.println(arrToString(arr));
}
public static String arrToString(int[] arr) {
if (arr == null) {
return "";
}
if (arr.length == 0) {
return "[]";
}
String result = "[";
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
result = result + arr[i];
}else {
result = result + arr[i] + ",";
}
}
result = result + "]" ;
return result;
}
}
结果:[1,2,3]
字符串的反转案例:
//把abc 进行反转为 cba
public class Practice3 {
public static void main(String[] args) {
String result = reversere("abc");
System.out.println(result);
}
public static String reversere(String str){
String result = "";
for (int i = str.length() - 1; i >= 0; i--) {
char c = str.charAt(i);
result = result + c;
}
return result;
}
}
结果:cba