Sting类在java.lang包下,不需要导包。
String类表示字符串,java程序中的所有字符串文字,都被实现为此类的实例。
特点:
1、字符串不可变,创建后不能变;
2、可以被共享;
3、字符串效果是相当于字符数组(char[]),但是底层原理是字节数组(byte[])
构造方法如下表
| 方法名 | 说明 |
| public String() | 创建一个空白字符串对象,不包含任何内容 |
| public String(char[] chs) | 根据字符数组的内容,来创建字符串对象 |
| public String(byte[] bys) | 根据字节数组的内容,来创建字符串对象 |
| String s = "abc" | 直接赋值 |
package day13;
public class StringDemo01 {
public static void main(String[] args) {
String s1 = new String();
System.out.println("第一个"+s1);
char[] chs = {'a','b','c'};
String s2 = new String(chs);
System.out.println("第二个"+s2);
byte[] bts = {97,98,99};
String s3 = new String(bts);
System.out.println("第三个"+s3);
String s4 = "gongwei";
System.out.println("第四个"+s4);
}
}
使用==比较字符串
基本类型:比较的是数组值是否相同
引用类型:比较的是地址值是否相同
如果要比较内容,使用equals()
package day13;
public class StringDemo01 {
public static void main(String[] args) {
String s1 = new String();
System.out.println("第一个"+s1);
char[] chs = {'a','b','c'};
String s2 = new String(chs);
System.out.println("第二个"+s2);
byte[] bts = {97,98,99};
String s3 = new String(bts);
System.out.println("第三个"+s3);
String s4 = "abc";
System.out.println("第四个"+s4);
String s5 = "abc";
//直接赋值,最终指向都是同一个栈内存地址,如果是构造方法赋值,会重新再新增一个栈内存。
System.out.println(s4==s5);
//比较内容
System.out.println(s2.equals(s3));
}
}
遍历字符串格式如下
for(int i =0; i>s.length();i++){
s.charAt(i);
}
package day13;
import java.util.Scanner;
public class StringDemo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
String line = sc.nextLine();
for(int i=0;i



