String字符串

10 篇文章 0 订阅
1 篇文章 0 订阅

                                                                                                      String字符串

一、了解字符串及赋值方式

1.什么是字符串?

String类位于java.lang包中,具有丰富的方法计算字符串的长度、比较字符串、连接字符串、提取字符串

(1) String类位于java.lang包中;

    字符串是一个特殊的对象;

    字符串一旦初始化就不可以被改变;

    字符串String角标都以0开始。

(2) String类提供了多个方法对字符串进行操作;

(3) 常见的操作:获取、判断、切割、替换、转换、去空格、比较、连接

2.赋值方式

直接赋值

构造方法赋值

字符串池 String pool

二、字符串池的优缺点:

字符串池的优点就是避免了相同内容的字符串的创建,节省了内存,省去了创建相同字符串的时间,同时提升了性能;

         另一方面,字符串池的缺点就是牺牲了JVM在常量池中遍历对象所需要的时间,不过其时间成本相比而言比较低。

三、String类的常用方法

1、获取:

1.1获取字符串长度

    int    length();              //注意:长度是指个数,不是字节数。

1.2获取字符串位置上某个字符

    char   charAt(int index);

    //当int index的值大于字符串最大的角标时,会发生StringIndexOutOfBoundsException错误。

1.3.根据字符获得该字符在字符串中的位置

    int    indexOf(int ch);  //返回ch在字符串中第一次出现的位置

    int    indexOf(int ch, int fromIndex);  //从fromIndex指定位置开始,获取ch在字符串中出现的位置

    int    indexOf(String str); //返回str在字符串中第一次出现的位置

    int    indexOf(String str, int fromIndex);  //从fromIndex指定位置开始,获取str在字符串中出现的位置

    /**如果在字符串中没有找到该ch或str,则返回-1**/

1.4.反向索引一个字符出现位置(字符串存入内存时,就存在角标)

    int    lastIndexOf(String str);  //从字符串的后面找起

1.5.指定字符串位置中的字符的ASCII码

    int   codePointAt(int index);  //返回指定字符串位置中的字符的ASCII码值

2、判断:

2.1.字符串中是否包含某一个字串

    boolean   contains(str);

    特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1,表示str不在字符串中存在。所以,也可以用于指定判断是否包含。if(str.indexOf("aa")!=-1)

该方法即可以判断是否包含,又可以获取出现在的位置。如果只是要判断是否包含,就用contains()

2.2字符串中是否有内容

    boolean   isEmpty();  //原理:判断长度是否为0

 

2.3.字符串是否以指定的内容开头

    boolean   startsWith(str);

2.4.字符串是否以指定的内容结尾

    boolean   endsWith(str);

  实战案例:判断文件是否是Array开头,.java结尾,并且中文名中包含Demo的文件。

2.5.判断字符串内容是否相同

    boolean   equals(str);

2.6.判断内容是否相同,并忽略大小写

    boolean   equalsIgnoreCase(str);   //'一阔儿死 衣格诺 克死

3、转换:

3.1.将字符数组转成字符串

3.1.1 构造方法:

         String(char[]); //将char数组转成字符串

         String(char[], offset, count);  //将char数组中的一部分转成字符串,offset第几位开始,count往后几位

    /** 案例1:

         char[] arr={'a','b','c','d','e','f','g'};

         String s =new String(arr);

         System.out.println("s="+s);  //返回:s=abcdefg

        案例2:

         char[] arr={'a','b','c','d','e','f','g'};

         String s =new String(arr,1,3);

         System.out.println("s="+s);  //返回:s=bcd

    **/

3.1.2 静态方法:

         static String    copyValueOf(char[]);

         static String    copyValueOf(char[] data, int offset, int count);

         static String    valueOf(char[]);

    /** 案例:

         char[] arr={'a','b','c','d','e','f','g'};

         String a=String.copyValueOf(arr);

         //返回:abcdefg

    **/

3.2.将字符串转成字符数组

         char[]     toCharArray();

    /** 案例:

         String str="abd dfsdof@43";

         char[] arrc=str.toCharArray();

         //遍历char[],在此省略。

    **/

3.3将字节数组转成字符串

    String(byte[]);

    String(byte[], offset, count);  //将字节数组中的一部分转成字符串

3.4.将字符串转成字节数组

    byte[]   getBytes();

3.5.将基本数据类型转成字符串

    static String   valueOf(int);

    static String   valueOf(double);

    /** 案例:转字符串

         3+"";

         String.valueOf(3);

         //2种相同,第一种常用,第二种专业

    **/

4、替换:

    String   replace(oldchar, newchar);

    String   replace(oldstr, newstr);

    /** 如果要替换的字符不存在,返回的还是原来的字符串 **/

5、切割:

    String[]   split(regex); 

6、子串:(获取字符串中的一部分)

    String   substring(begin);

    String   substring(begin, end);

    /** 字符第一位是0; 包含头,不包含尾; 如果角标不存在,会出现字符串角标越界异常  **/

    /** 案例1:获取整个字符串:

         String str="abcdefg";

         //方法一:

         String stra=str.substring(0, str.length()-1);

         //方法二:

         String strb=str.substring(0);

    **/

7、转换、去空格、比较、连接、格式

7.1.  将字符串转成大写或小写

    String   toUpperCase(); 

    String   toLowerCase();

7.2.  将字符串两端的空格去除

    String   trim();   //trim('倾慕)整齐,修剪

7.3.  对两个字符串进行自然顺序的比较

    int   compareTo();

    /** 逐个比较ASCII码值:大于返回一个>=1的值;等于返回0;小于返回-1  **/

7.4.  对两个字符串进行连接

String   concat(str);

四、字符串格式占位符

String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。

    转换符    说明                 示例

    %s            字符串类型    "abc"

    %c            字符类型        'a'

    %b            布尔型

    %d            十进制

    %f             浮点型

    %%           百分比

    %n            换行符

    %tx           日期与时间类型(x代表不同的日期与时间转换符)

String str=String.format("Hi,%s:%s.%s", "王南","王力","王张");      

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

银色亡灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值