String常用方法简介

创建String对象的方法:

String s1="imooc";

等同于

String s3=new String("imooc");

都是创建了一个字符串对象imooc

String常用方法(上)

​1.求字符串长度:

​ str.length();
  1. 取出位置在6的字符;字符串中的字符从0开始数,也就是第7个字符

    str.charAt(6);
  2. 取出子串,即字符串位置5及位置5以后的字符串

    str.substring(5);
  3. 取出子串,即字符串位置5(包括位置5)及位置7之前的字符串(不包括位置7)

    str.substring(5,7)

String常用方法(下)

  1. 查找字符'A'在字符串中第一次出现的位置

    str.indexOf('A');
  2. 查找子串“编程”在字符串中第一次出现的位置

    str.indexOf("编程");
  3. 字符'A'在字符串中最后一次出现的位置

    str.lastIndexOf('A');
  4. 查找子串“编程”在字符串中最后一次出现的位置(其实是“编”最后一次出现的位置)

    str.lastIndexOf("编程");
  5. 在字符串index值为8的位置开始,查找子串“编程”第一次出现的位置是16

    str.indexOf("编程",8)

编程练习1

使用String类常用方法完成字符串处理。

任务

1、 定义一个字符串"abcdefg"

2、 取出子串cde并转换为大写

3、 将DE替换为MM

4、 最后得到结果CMM

package me.feihong.string;

public class StringOne {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str=new String("abcdefg");
    
    String str1=str.substring(2, 5);
    
    String str2=str1.toUpperCase();

    String str3=str2.replace("DE", "MM");
    
    System.out.println(str3);

}

}

字符串与byte数组间的相互转换

字符串与byte数组之间的相互转换-----用的是utf-8编码
那么将相应的byte数组转换为字符串时---它所用的编码也应该为utf-8,要保持编码的一致

等于运算符与equals方法的区别

str1.euqals(str2) //指的是str1与str2的内容是否相同(
(str1==str2)//指的是str1与str2的地址是否相同

常量池与堆

字符串的不可变性

不可变性:String对象一旦被创建不能更改,是不可变得
通过“=”改变的只是引用位置,对象的值还是未改变的
通过方法得出的子串,新的字符....都是存放在常量池中,而并不是覆盖了对象的值

StringBuilder概述

String和StringBuilder的区别

1.建议:当频繁操作字符串时,使用StringBuilder
  1. StringBuilder和StringBuffer
    二者基本相似
    StringBuffer是线程安全的,StringBuilder则没有,所以性能略高

StringBuilder常用方法

StringBuider
1.不具备不可变性,当频繁操作字符串时,使用StringBuider
2.StringBuilder(性能略高)和StringBuffer(线程安全)二者基本相似
3.StringBuilder str=new StringBuilder("你好");
System.out.println("str="+str.append(',').append(“imooc!”));
4.使用str.delete()方法删除,然后使用str.insert()方法插入
5.使用replace方法直接替换 : str.replace(4,8,"MOOC");

编程练习2

定义一个字符串,利用StringBuilder完成如下效果。

效果图:

任务

  1. 定义一个字符串”欢迎来到“
  2. 在"欢迎来到"后面添加内容,将字符串变成"欢迎来到imooc"
  3. 使用delete方法删除"欢迎来到",然后插入“你好!”
  4. 将字符串变成“你好,imooc”
  5. 使用replace方法替换
package me.feihong.string;

public class StringBuilderDemo {

public static void main(String[] args) {
    //定义一个字符串"欢迎来到"
    StringBuilder str=new StringBuilder("欢迎来到");
    
    //在"欢迎来到"后面添加内容,将字符串变成"欢迎来到imooc"
    System.out.println(str.insert(4, "imooc"));        
    //使用delete方法删除"欢迎来到",然后插入“你好!”
    System.out.println("删除插入后:"+str.delete(0, 4).insert(0, "你好,"));        
    //将字符串变成“你好,imooc”
    System.out.println("替换后:"+str.replace(0, 3, "欢迎来到"));        
    //使用replace方法替换

}

}

编程练习3

定义一个字符串,使用StringBuilder的常用方法对字符串进行操作。

任务

1、 定义字符串"abc"

2、 使之经过处理得到字符串"fed---cba",并进一步得到字符串"fedcba"

package me.feihong.string;

public class StringBuilderDemo {

public static void main(String[] args) {
    //定义字符串"abc"
    StringBuilder str=new StringBuilder("abc");
    
    //经过处理得到字符串"fed---cba"
    System.out.println(str.append("def").reverse().insert(3, "---"));
    
    //进一步变换得到字符串"fedcba"
    System.out.println(str.delete(3, 6));

}

}
最后修改:2019 年 12 月 31 日
如果觉得我的文章对你有用,请随意赞赏