详情请看
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结束