详情请看
String类
-
字符串是常量,创建后不可以被改变
-
字符串面值是储存在字符串池(方法区)中的,目的是可以共享
两种创建方式:
package com;
public class Test {
public static void main(String[] args) {
// 创建String类对象:方式一
String str1="nihao";
str1="aa";// 重新把aa赋值给变量str1,java中重新赋值相当于在字符串池中在创建一个aa,然后改变str1在栈中的指向,nihao依然存在
String str2="nihao";// 这样创建String类对象,因为在字符串池中指向的对象是相同的,所以栈的地址是相同的
// 创建String类对象:方式二
String str3 = new String("java");// 这样创造的,str3对象会从栈指向堆然后指向字符串池(因为堆的不同,所以即使数值相同,栈的地址也会不同)
String str4 = new String("java");
System.out.println(str3==str4);// 判断两个对象的地址是否相同,返回布尔值
System.out.println(str3.equals(str4));// 判断两个对象的内容是否相同,返回布尔值
}
}
常用方法
length():打印字符串的长度
charAt():打印某一下标的数据
contains():判断该字符串是否在该对象中(返回布尔值)
toCharArray():返回字符串对应的数组
Arrays.toString(str.toCharArray()):将str数组中的元素一一打印出来
indexOf():打印字符串第一出现的下标
indexOf(xx,int):打印字符串xxx从长度int开始之后,出现的下标
lastIndexOf():打印字符串最后一次出现的下标
trim():去除首尾空格
toUpperCase():字母小写转大写toLowerCase()大写转小写 java中没有直接大小写互换
endsWith():判断以什么结尾
startsWith():判断以什么开头
replace():字符串的替换(java没有插入功能,可以用替换来实现插入)
split():以什么符号将字符串进行分割
package com;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Locale;
public class Test {
public static void main(String[] args) {
String str = "java是不错的编程语言,java,java真不错";
System.out.println(str.length());// 打印字符串的长度
System.out.println(str.charAt(str.length()-1));// 打印对象str最后一位的下标(python的索引)
System.out.println(str.contains("java"));// 判断字符串“java”是否在对象str中
System.out.println(str.contains("python"));
// ==========================================================================
System.out.println(str.toCharArray());// 返回字符串对应的数组
System.out.println(Arrays.toString(str.toCharArray()));// 将数组中的元素一一打印出来
System.out.println(str.indexOf("java"));// 打印字符串java第一出现的下标
System.out.println(str.indexOf("java",4));// 打印字符串java从长度4(4是长度不是下标)开始之后,出现的下标
System.out.println(str.lastIndexOf("java"));// 打印字符串java最后一次出现的下标
// ==========================================================================
String str1=" hi java ";
System.out.println(str1.trim());// 去除首尾空格
System.out.println(str1.toUpperCase(Locale.ROOT));// 字母小写转大写 toLowerCase()大写转小写 java没有直接大小写互换
System.out.println(str1.endsWith(" "));// 判断以什么结尾
System.out.println(str1.startsWith(" "));// 判断以什么开头
// ==========================================================================
System.out.println(str.replace("java", "python"));// 字符串的替换
String str2="java python c vue java,python,c,vue";
String[] str3=str2.split("[ ,]+");// 以什么符号将字符串进行分割(+和python正则用法一样)
// 用string,for循环遍历str3,
for (String string :
str3) {
System.out.println(string);
}
}
}
补充:
substring(a,b):字符串的截取以下标a开始,到下标b结束











