Java常用类:String
2022/3/27 20:22:52
本文主要是介绍Java常用类:String,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
String
- 字符串是常量,创建之后不可改变,修改变量的赋值不是修改字符串,而是将变量指向新创建的字符串
- 字符串字面值存在字符串池中,可以共享,JDK8后字符串池在堆中
- 创建字符串变量:
String s = "H";
产生一个对象,字符串池中存储String s = new String("H");
产生两个对象,堆、池中各存储一个。堆中存储new的对象,指向字符串池的字符串,浪费空间
- 在对字符串进行比较时使用
equals()
,String重写了equals方法
String str = new String("H"); String str2 = new String("H"); System.out.println(str==str2);//false,比较的是对象的地址 System.out.println(str.equals(str2));//true,比较字符串的内容
常用方法
length()
:返回字符串的长度
test.length()//10
charAt(int index)
:返回某个位置的字符,下标越界会报错
test.charAt(4)//是
contains(String str)
:是否包含某个字符串
test.contains("java")//true
toCharArray()
:将字符串转换成数组
Arrays.toString(test.toCharArray();//[j, a, v, a, 是, 最, 好, 的, 语, 言]
indexOf(String str, n)
:(从索引n开始)查找str首次出现的下标,存在返回下标,不存在返回-1
test.indexOf("java")//0
LastIndexOf(String str, n)
:(从索引n开始)查找str最后一次出现的下标,存在返回下标,不存在返回-1
test.lastIndexOf("b")//-1
trim()
:去掉字符串前后的空格toUpperCase()
:小写转大写toLowerCase()
:大写转小写endWith(String str)
:判断字符串是否以str结尾startWith(String str)
:判断是否以str开头- replace(char oldChar, char newChar):将旧字符串替换成新字符串
test.replace("java","python")//python是最好的语言
-
split(String str)
:根据str做拆分spilt(" ")
:按照空格拆分[]
表示选择其中的内容,可以用[]
中的其中一个内容进行拆分+
代表切分符号可以出现多个但只切分一次
String s = "java is the best programing language, php not"; String[] arr = s.split("[ ,]+");//[]表示选择其中的内容,可以用空格或逗号拆分;+代表切分符号可以出现多个但只切分一次 for (String string : arr) { System.out.println(string); } //输出 java is the best programing language php not
equals()
:比较字符串的内容是否相同equalsIgnoreCase()
:忽略大小写的比较compareTo()
:按照字典表的顺序比较大小
String s3 = "xdfg"; String s4 = "asdzb"; System.out.println(s3.compareTo(s4));//23首字母的序号差值,正数则s3>s4
当进行比较的两个字符串的长度不同,但较短的字符串的内容和较长的前部完全相同时,比较的是字符串的长度
String s5 = "asd"; String s6 = "asdfg"; System.out.println(s5.compareTo(s6));//-2,返回值是字符的长度差,相等时为0
substring(int beginIndex, int endIndex)
:切片
可变字符串
StringBuffer
:可变长字符串,JDK1,运行效率慢,线程安全StringBuilder
:可边长字符串,JDK5,运行效率快,线程不安全- 和
String
的区别:- 效率更高
- 节省内存
方法(StringBuffer和StringBuilder通用)
append(内容)
:追加各种类型的内容insert(int offset, 内容)
:在指定索引处插入内容replace(int start, int end, 替换内容)
:在指定位置进行替换delete(int start, int end)
:删除索引中的内容delete(0, str.length())
:清空内容
效率验证
public static void main(String[] args) { //开始时间 long start = System.currentTimeMillis(); //String 312 // String string = ""; // for (int i = 0; i < 9999; i++) { // string+=i; // } // System.out.println(string); //StringBuilder:3 StringBuilder sb = new StringBuilder(); for (int i = 0; i < 9999; i++) { sb.append(i); } System.out.println(sb.toString()); long end = System.currentTimeMillis(); System.out.println("用时:"+(end-start)); }
这篇关于Java常用类:String的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程