java字符串

一、简要介绍

String表示字符串类型,属于 引用数据类型,不属于 基本数据类型。 

字符串是程序开发当中,使用最频繁的类型之一,有着与基础类型相同的地位,

甚至在 JVM(Java 虚拟机)编译的时候会对字符串做特殊的处理,

比如拼加操作可能会被 JVM 直接合成为一个最终的字符串,从而到达高效运行的目的。

 

二、String

1、String的特性

  • String 是标准的不可变类(immutable),对它的任何改动,其实就是创建了一个新对象,再把引用指向该对象;
  • String 对象赋值之后就会在常量池中缓存,如果下次创建会判定常量池是否已经有缓存对象,如果有的话直接返回该引用给创建者。

 

2、创建方式

字符串创建的两种方式:

  • String str = "yangJin";
  • String str = new String("yangJin");

 

3、String的创建与赋值

String s1 = "yangJin";
String s2 = s1;
String s3 = new String(s1);
System.out.println(s1 == s2);    //ture
System.out.println(s1 == s3);    //false

s3 使用 new String 时一定会在堆中重新创建一个内存区域,而 s2 则会直接使用了 s1 的引用,所以得到的结果也完全不同。

 

4、String的存储

String作为引用数据类型,它的是存放到JVM的里面;

并且它不会被修改,因为当我们给String赋新的值时,是将该变量名指向了新的地址,

原始的值没有被修改,只是不被引用了。

所以,才会有 StringBuffer、StringBuild 两个类进行扩展,它们支持对原始值的修改。

 

5、String的常用方法

返回值 方法名(参数)

作用

char charAt(int index)

返回指定位置的字符

boolean contains(CharSequence s)

判断字符串是否包含参数

int compareTo(String anotherString)

比较两个字符串。相等返回0;前大后小返回1;前小后大返回-1

boolean equals(Object anObject)

判断两个串是否相等

boolean equalsIgnoreCase (String anotherString)

忽略大小写判断两个串是否相等

byte[] getBytes()

将字符串变成字节数组返回

char[] toCharArray()

将字符串转换乘char数组

int indexOf(String str)

返回str在字符串第一次出现的位置

int lastIndexOf(String str)

返回str最后一次出现的位置

boolean isEmpty()

字符串是否为空

int length()

字符串长度

String replace(CharSequence target, CharSequence replacement)

用replacement替换字符串target的字符

String[] split(String regex)

将字符串以regex分割

String substring(int beginIndex)

从beginIndex开始截取字串

String substring(int beginIndex, int endIndex)

截取beginIndex到endIndex - 1的字符串

String toLowerCase()

字符串转小写

String toUpperCase()

字符串转大写

String trim()

去除字符串两边空格

static String valueOf(int i)

将 i 转换成字符串

 

三、String、StringBuffer、StringBuild

1、简单介绍

字符串相关类型主要有这三种:

String、StringBuffer、StringBuild,

其中 StringBuffer、StringBuild 都是可以变的字符串类型,

StringBuild 是非线程安全的,所以多线程下推荐使用 StringBuffer

 

2、StringBuffer的常用方法

(1)StringBuffer append(xxx) :用于字符串拼接。

(2)StringBuffer delete(int start,int end) :删除指定位置的内容。

(3)StringBuffer replace(int start,int end,String str) :把[start,end)位置替换为str。(注意左闭右开)

(4)StringBuffer reverse() :把当前字符序列逆转

(5)StringBuffer insert(int offset,xxx) :在指定位置offset插入xxx。

(6)StringBuffer substring(inr start,int end) :在[start,end)截取x新的字符串。(注意左闭右开)

(7)StringBuffer length() :返回该字符串的长度。

(8)StringBuffer charAt(int n) :返回字符串上n的位置的字符

(9)StringBuffer setCharAt(int n,char ch) :将自负床中位置为n的字符变为ch。

 

3、StringBuild的常用方法

StringBuilder与StringBuffer非常相似,均可代表可变的字符序列,而且提供相关的方法也一样

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值