javaAPI: String StringBuilder StringBuffer

 JDK API

JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口)就是一些已写好、可供直接调用的功能(在Java语言中,这些功能以类的形式封装)。

JDK API 包含的类库功能强大,经常使用的有:字符串操作、集合操作、文件操作、输入输出操作、网络操作、多线程等等。

JDK包结构:

    JDK中经常使用的包有:

功能

java.lang

Java程序的基础类,如字符串、多线程等,该包中的类使用的频率非常高,不需要import,可以直接使用

java.util

常用工具类,如集合、随机数产生器、日历、时钟等

java.io

文件操作、输入/输出操作

java.net

网络操作

java.math

数学运算相关操作

java.security

安全相关操作

java.sql

数据库访问

java.text

处理文字、日期、数字、信息的格式


String

String是不可变的对象,本质是字符数组

public final class String

String对象一经创建,对象中的值是不可以改变的


        string对象创建的两种方式

1.构造方法

new String(String str)

new String()

new String(StringBuffer)

new String(StringBuilder)

........

2直接指定直面量

String str="hello";

通过直接给出字符串字面量的方式创建出的对象,是保存于字符串常量池的。

    字符串常量池是位于堆中的,字符串常量池是用于保存字符串字面量的,为了提高对象的使用率。在一个程序中,创建的字符串字面量对象保存于常量池中,如果在此之后,又要使用到此字面量,那么直接到常量池找,看此对象是否存在,如果存在,让引用直接指向,而不重新创建对象,如果不存在,才创建对象。

    注意点:

       其实常量池中保存的并不是字面量对象,而是引用(实际对象也是存储在堆中)

***通过构造方法产生的字符串,String a=new String("abc");  a指向堆中的对象,堆中的对象指向常量池,常量池再指向对中的abc对象;


方法


           length():int  获取字符串的长度(字符个数)

           indexOf系列方法:

           -indexOf(int ch):int

              获取指定字符在字符串中第一次出现的索引

           -indexOf(int ch,int fromIndex):int

              从指定位置开始查找指定字符第一次出现的索引

           -indexOf(String subStr):int

              获取指定子字符串在本字符串中第一次出现的索引

           -indexOf(String subStr,int fromIndex):int

              从指定位置开始查找指定子字符串在当前字符串中第一次出现的索引

       lastIndexOf系列

lastIndexOf(int ch):int

-获取指定字符中最后一次出现的下标

lastIndexOf(int ch,int fromIndex):int

-从指定位置开始反向查找指定字符最后一次出现的下标
       lastIndexOf(String str):int
       lastIndexOf(String str,int fromIndex):int


trim():String


       去掉字符串开始和结尾的空格,得到一个新对象


       注意点:


           字符串中间位置的空格不去


           调用此方法得到了新对象


       startsWith(String prefix):boolean


       endsWith(String suffix):boolean


 


       toUpperCase():String


       toLowerCase():String

       注意点:方法的返回值如果为String,意味着调用此方法得到了一个新String对象。


charAt(int index):char
       其作用正好和indexOf方法相反  
substring
       substring(int beginIndex):String
-    包括边界值
       substring(int beginIndex,int endIndex):String
-    包括开头的边界值,不包括结尾的边界值

5   .StringBuilder

问题:  字符串的拼接:

String  str = s1+s2+s3+….+sn;

    以上这种方式拼接字符串过程中会浪费大量内存,不推荐的。

 

StringBuilder提供了一个可变的字符数组,所以字符串内容的修改都是在这个数组中进行,而不会每次修改都创建一个新对象.

 

使用:

1.  构造方法

a)   StringBuilder()

b)   StringBuilder(String)

2.  方法:

a)   append(String str):StringBuilder

                               i.      注:返回的是this

b)   insert(int destOffSet,String str)

c)   delete(int start,int end)

d)   replace(int strat,int end,String str)

e)   reverse()

f)   toString()

 

注意点:

1.StringBuilder的很多方法的返回值均为StringBuilder类型。这些方法的返回语句均为:return this。

2.java的字符串连接的过程是利用StringBuilder实现的

String s = s1+s2;在内存中底层就是采用StringBuilder完成

StringBuffer和StringBuilder的区别:

       StringBuffer先出现的,它的作用和StringBuilder 完全相同,api操作也是完全相同的。

    区别在于:

       StringBuffer是保证线程安全的,效率较低

       StringBuilder是非线程安全的,效率较高









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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值