1.String创建对象
所有Java的字符串字面值,都是字符串对象。
创建String对象的第一种方式
String s1 = "abc"; //这里"abc"就是一个字符串对象,用s1变量接收
创建String对象第二种方式
// new String创建字符串对象,并调用构造器初始化字符串
String stra = new String();
System.out.println(stra ); // ""
String strb = new String("hjwwww");
System.out.println(strb );
char[] chars = {'q', 'w', 'e'};
String strc= new String(chars);
System.out.println(strc);
byte[] bytes = {97, 98, 99};
String strd= new String(bytes);
System.out.println(strd);
2.String类的常用方法
public class StringDemo {
public static void main(String[] args) {
String s = "hjwwww";
// 1、获取字符串的长度
System.out.println(s.length());
// 2、提取字符串中某个索引位置处的字符
char c = s.charAt(1);
System.out.println(c);
// 字符串的遍历
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
System.out.println(ch);
}
// 3、把字符串转换成字符数组,再进行遍历
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
// 4、判断字符串内容,内容一样就返回true
String s1 = new String("qwer");
String s2 = new String("qwer");
//"=="比较地址 equals() 没重写比较地址,重写后比较值
//String类对equals方法进行了重写
System.out.println(s1 == s2); // false
System.out.println(s1.equals(s2)); // true
// 5、忽略大小写比较字符串内容
String c1 = "34AeFG";
String c2 = "34aEfg";
System.out.println(c1.equals(c2)); // false
System.out.println(c1.equalsIgnoreCase(c2)); // true
// 6、截取字符串内容 (包前不包后的)
String s3 = "0123456789";
String rs = s3.substring(0, 8);
System.out.println(rs);
// 7、从当前索引位置一直截取到字符串的末尾
String rs2 = s3.substring(5);
System.out.println(rs2);
// 8、把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们
String info = "这个电影简直是个垃圾,垃圾电影!!";
String rs3 = info.replace("垃圾", "**");
System.out.println(rs3);
// 9、判断字符串中是否包含某个关键字
String info2 = "Java是最好的编程语言之一,我爱Java,Java不爱我!";
System.out.println(info2.contains("Java"));
System.out.println(info2.contains("java"));
System.out.println(info2.contains("Java2"));
// 10、判断字符串是否以某个字符串开头。
String rs4 = "张三丰";
System.out.println(rs4.startsWith("张"));
System.out.println(rs4.startsWith("张三"));
System.out.println(rs4.startsWith("张三2"));
// 11、把字符串按照某个指定内容分割成多个字符串,放到一个字符串数组中返回给我们
String rs5 = "张无忌,周芷若,殷素素,赵敏";
String[] names = rs5.split(",");
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
3.String的注意事项
(1).string对象的内容不可改变,被称为不可变字符串对象。
执行第一句话时,会在堆内存的常量池中,创建一个字符串对象“黑马”
,然后把“黑马”
的地址赋值给String name
执行第二句话时,又会再堆内存的常量池中创建一个字符串“程序员”
,和“黑马”
拼接,拼接之后还会产生一个新的字符串对象”黑马程序员“
,然后将新产生的“黑马程序员”
对象的地址赋值给String name
变量