第三章-字符串类[String]

String介绍

      String是我们使用最多的一种字符串数据类型,它本质是一个对象,但String又和其他的对象有不同点;

重点

       直接已""进行创建 和 使用 new 关键字创建他们存储的位置是不同的!并且一旦被创建是不可以被更改的,很多人的代码中都使用到了 + 符号进行拼接,但本质是又创建一个对象在把2个对象字符串进行拼接成为另外一个新的字符串;

String str1 = new String("我");//堆空间  string@001  
String str2 = new String("我");//堆空间  string@002  
String str3 = "我";//常量池
String str4 = "我";//常量池
String str5 = "abc";//常量池
String str6 = "a"+"b"+"c";//常量池

str1 == str2 ?   //不等,堆内存空间地址不同
str1 == str3 ?   //不等,引用地址不同
str3 == str4 ?	 //等于,都是指向常量池
str5 == str6 ?   //等于,常量池检查机制



String的常用方法

返回值类型 方法名称 描述
int length() 返回字符长度
int compareTo( String ) 比较字符字典顺序
boolean equals( String ) 字符串内容比较
boolean equalsIgnoreCase( String ) 字符串内容比较,不区分大小写
boolean startsWith( String ) 字符串以什么开头
boolean endsWith( String ) 字符串以什么结尾
int indexOf( char ) 返回字符所在索引位置
int indexOf( char,index ) 从哪个索引位置开始找,返回索引位置
char charAt( index ) 返回索引位置的字符
String valueOf( baseDataClass ) 返回字符串
String toUpperCase() 全部修改为大写
String toLowerCase() 全部修改小写
char[] toCharArray() 转换为字符数组
String str1 = "hello my name is jack the is i introduce";



占位符

      在我们处理数据的时候需要对其它的数据进行拼接,处理起来特别麻烦,我们可以通过设置占位符的方式去对字符串进行改造,例如:我要在第一个占位符的位置插入一个字符串,第二个占位符的位置插入一个变量等...

转 换 符 说 明
%s 字符串类型
%c 字符类型
%b 布尔类型
%d 整数类型(十进制)
%x 整数类型(十六进制)
%o 整数类型(八进制)
%f 浮点类型
%a 十六进制浮点类型
%e 指数类型
%g 通用浮点类型(f和e类型中较短的)
%h 散列码
%% 百分比类型
%n 换行符
%tx 日期与时间类型(x代表不同的日期与时间转换符
String introduce = "我的名字叫:%s,今年:%d岁";
String myIntroduce = String.format(introduce,"老王",48);

---

StringBuffer和StringBuilder介绍

概述:

​ StringBuffer是可变长字符串,在JDK1.0开始就已经存在,它被synchronized关键字所修饰,因此它是安全的,它的构造器分为空参和有参2个构造,无参数构造在对象创建时会为它分配16个字节数组空间,如果是有参数构造会把构造所传递的字符串存储到StringBuffer中并追加16个字节数组空间,但由于对字符串的并发情况下的操作并不多,在JDK1.5时推出了StringBuilder字符串类,它们的底层完全一样,只是StringBuilder比StringBuffer少了一个Synchronized关键字,在操作时不会上锁;

posted on 2021-04-17 14:24  JavaCat7  阅读(82)  评论(0)    收藏  举报