Java常用类之String类知识清单,简单易理解
String类基础知识
1、String类表示字符串,理解为不可变的字符序列
2、String类声明为final,不可被继承
3、String类实现了Serializable接口:表示字符串是支持序列化的(序列化:可将java对象转变为二进制文件,从而传输这个java对象)
4、String类实现了 Comparable接口:表示字符串可以比较大小
5、底层用final char[] value存储
String类对象的创建方式
1、字面量方式
String s1="abcd"
该方式首先在栈空间里声明了一个String类型变量s1,然后在方法区中的常量池里存储abcd,将存储地址值(Ox0001)赋给s1,使s1指向abcd
2、构造器方式
String s2=new String(“abcd”);
该方式首先在栈空间里声明了一个String类型变量s2,然后在堆空间开辟一片空间,将该空间的地址值(Ox1111)赋给s2,使s2指向它。在方法区中的常量池里存储abcd,将存储地址值(Ox0001)赋给value属性,使它指向abcd
图中所示地址值均为假设地址值
其余类创建对象只有构造器方式
字符串的连接运算
1、str="aaa"+"bbb"
字符串常量和字符串常量连接后依然存在于常量池中,而常量池中相同的数据只存在一份。
因此若连接后的数据(aaabbb)已经在常量池中存在,就将该地址赋给接收它的变量(str)
若不存在,将在常量池中开辟空间存储连接后的数据(aaabbb),将新开辟的地址赋给接收它的变量(str)
2、str=s1+"bbb"
字符串变量和字符串常量连接后,先在堆空间new一个对象,将该对象的地址赋给接收它的变量(str),再让该对象指向常量池。因此,无论连接后的数据是否在常量池中存在,连接后的变量(str)指向的都是堆空间中对象的地址
2、str=s1+s2
字符串变量和字符串变量的连接,同2。
代码示例:
public class StringTest {public static void main(String[] args) {String s1="aaa";String s2="bbb";String s3="aaabbb";String s4="aaa"+"bbb";System.out.println(s3==s4);//true,常量池中相同的数据只存在一份,因此s4被赋上的是s3的地址String s5=s1+"bbb";System.out.println(s3==s5);//false,只要有一个是变量,就相当于在堆空间new了一个对象,该对象再指向常量池。因此s5被赋上的是堆空间中new出来的对象的地址String s6=s1+s2;System.out.println(s5==s6);//false,两个都是变量,就相当于在堆空间new了一个对象,该对象再指向常量池。因此s6被赋上的是堆空间中new出来的对象的地址System.out.println(s3==s6.intern());//true,intern()方法返回常量池中的存储地址}
}
String类的常用方法举例:
public class StringTest2 {public static void main(String[] args) {String str="Hello World";System.out.println("该字符串的长度是:"+str.length());//包括空格System.out.println("下标为1的字符是:"+str.charAt(1));System.out.println("该字符串是否为空:"+str.isEmpty());System.out.println("全部转换为小写:"+str.toLowerCase());System.out.println("全部转换为大写:"+str.toUpperCase());str=" Hello World ";System.out.println("去掉首尾空格:"+str.trim());String s1="Hello World";String s2=new String("Hello World");System.out.println("s1和s2的地址值是否相同:"+(s1==s2));//==比较地址值System.out.println("s1和s2的内容是否相同:"+s1.equals(s2));//equals比较内容}
}
equalsIgnorCase(object anObject):忽略大小写之后比较字符串内容是否相同
concat(String str):拼接字符串
compareTo(String anotherString):比较字符串大小
substring(int beginIndex):从指定索引处截取子串
startsWith(String prefix):是否以指定子串开始
endsWith(String suffix):是否以指定子串结束
contains(String str):是否包含子串
indexOf(int ch):返回子串第一次出现的索引,没有出现过返回-1
lastIndexOf(int ch):返回子串最后一次出现的索引,没有出现过返回-1
replace(char oldChar,char newChar):用新字符代替旧字符
matches(String regex):按正则表达式进行匹配
split(String regex):按正则表达式将字符串拆分成字符串数组
将String型转化为int型
Integer.parseInt(str)
将int型转化为String型
String.valueOf(i) 或 i+""
Java常用类之String类知识清单,简单易理解相关推荐
- 17.Java常用实用类之String类中常用的方法以及一般应用场景,final关键字
文章目录 1.String类学习 1.1.什么是String类 1.2.String类中常用的方法 1.2.1. 构造方法 1.2.2.public int length() 1.2.3.public ...
- 常用类 (六) ----- String类与字符串
相关文章: <常用类 (一) ----- Arrays数组工具类> <常用类 (二) ----- Math类> <常用类 (三) ----- BigDecimal和Big ...
- java问题解读,String类为什么是final的
一.理解final 望文生义,final意为"最终的,最后的",我理解为"不能被改变的",它可以修饰类.变量和方法. 所以我是否可以理解为被它所修饰的类.变量和 ...
- 【JavaSE】常用类3[String类、StringBuffer、StringBuilder]
常用类3 ①.String类 -String常用方法 -String案例演示 ②StringBuffer和StringBuilder -StringBuffer -StringBuilder -Str ...
- java str2date,java date类与string类实例代码分享
Date类用来指定日期和时间,其构造函数及常用方法如下: publicDate() 从当前时间构造日期时间对象. publicStringtoString() 转换成字符串. publiclongge ...
- Java常用类库之String
Java常用类库之String学习与积累 概述 在学习Java时,我们知道Java的基本数据类型有整型的int,byte,short,long,字符型的char,布尔型的Boolean和浮点型的flo ...
- JavaSE(七)——Scanner类、String类
文章目录 1. Scanner类 2. String类 2.1 定义 2.2 常见转换 2.3 字符串赋值 2.4 String类的判断功能 2.5 String类的获取功能 2.6 String类的 ...
- java基础知识--(常用类)String类
8.01 String简介 String(字符串常量)概述 String 类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量: ...
- Java常用类库(Object类、String类、StringBuffer类、包装类、Math类、System类)详解
常用类库 java.lang java.lang包下放置了Java开发中常用的类和接口,所以为简化该包下类的使用,java.lang包下的类在使用时不需要导入这些类 java.lang包下常用类有: ...
最新文章
- 波士顿动力双足机器人Atlas放出逆天体操表演,网友:比我还强
- 尽量使用int型的列类型
- python 神经网络中隐藏层的作用是什么?
- virsh 关机_KVM virsh常用命令篇
- erp开发和java开发区别_Java程序员求职必学:Spring boot学习指南!
- “李刚畅谈Java编程人生”讲座
- element-plus Table 表格自定义列模板使用及问题
- python 字符串以及通过dos命令运行py脚本
- bing翻译api php,Auto Tag Slug使用 google翻译并删除bing api key提示
- 耗时一年整理:Netty 终极权威指南 + 项目
- 幼儿园连锁管理系统源码
- Android事件机制深入探讨(一)
- 基于深度学习的行人检测技术
- GridView排序状态保持
- wim工具扫描linux磁盘,图文解说WIMTOOL的安装及利用该工具编辑WIM文件
- SpringCloud Stream+RabbitMQ自定义通道
- 【技术网站分享】全面整理了一波技术网站,分享给大家!
- powershell解压缩文件
- c++ 计算图形的面积
- python操作Excel【openpy】