Java字符串

79 阅读1分钟

API

应用程序编程接口

  • java API:就是JDK中提供的各种功能的Java类

创建String对象

![MT50O1A5FHTIDZ99%Q]L0Z6.png](p9-juejin.byteimg.com/tos-cn-i-k3…?)

字节数组

byte[] bytes={97,98,99,100};//对饮的assic码
String s=new String(bytes);
System.out.println(s);

输出:abcd

JAVA内存模型

8SH)}UOBQ5LG12%E%)I{9.png

每new一次就会在堆里开辟一个新空间

8SH)}UOBQ5LG12%E%)I{9.png

字符串String类常用方法

比较字符串

![LC81L$3Y0~V%{2{{5{LF7G.png

  • boolean equals方法(要比较的字符串) 完全一样的结果才是true,否则为false
  • booolean equalsIgnoreCase(要比较的字符串) 忽略大小写的比较

 String s1=new String("abc");
 String s2="abc";
 System.out.println(s1==s2);//引用数据类型比较地址值
 boolean result= s1.equals(s2);
 System.out.println(result);

输出:

     false 
     true        

遍历字符串

  • public char charAt(int index):根据索引返回字符
//字符串遍历
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串");
String str = sc.next();
for (int i = 0; i < str.length(); i++) {
    //i表示字符串的索引
    char c = str.charAt(i);
    System.out.println(c);
}
  • public int length():返回字符串的长度

  • 数组长度:数组名.length

  • 字符串的长度:字符串.length()

//字符串倒置
public static void main(String[] args) {
    String result= reverser("abc");
    System.out.println(result);
}
public  static String reverser(String str){
    String result="";
    for (int i = str.length()-1; i >=0; i--) {
        char c =  str.charAt(i);
        result = result + c;
    }
    return  result;
}

截取字符串

  • String substring(int beginIndex,int endIndex):截取字符串(包头不包尾包左不包右,只有返回值才是截取的小段,)
  • String substring(int beginIndex):截取到末尾 -Strinng raplace(旧值,新值):替换
//截取字符串

public static void main(String[] args) {
    String phoneNumber="15080226841";
    String start=phoneNumber.substring(0,3);//150
    String end=phoneNumber.substring(7);//6841
    String result=start+"****"+end;
    System.out.println(result);//150****6841
}

StringBuilder

作用:提高字符串的操作效率,创建之后里面的内容是可变的(打印对象不是地址值而是属性值)

使用:字符串的拼接或反转

public static void main(String[] args) {
    //字符串拼接
    int[] arr={1,2,3};
    String str=arrToString(arr);
    System.out.println(str);//[1,2,3]
}
public static String arrToString(int arr[]){
    StringBuilder sb=new StringBuilder();
    sb.append("[");
    for (int i = 0; i < arr.length; i++) {
        if(i==arr.length-1){
            sb.append(arr[i]);
        }else{
            sb.append(arr[i]).append(",");
        }
    }
    sb.append("]");
    return sb.toString();
}

常用方法

  • public StringBuilder():创建一个空白的可变字符串对象,不含任何内容
  • public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象
  • public StringBulider append(任意类型):添加数据,并返回对象本身(拼接字符串)
  • public String reverse():反转容器中的内容
  • public int length():返回长度
  • public String to String():把StringBuilder转换为String

链式编程

//链式编程,依赖前一个变量的方法
StringBuilder sb=new StringBuilder();
sb.append("aaa").append("bbb");
System.out.println(sb);//aaabbb

StringJoiner

和StringBuilder一样,提高字符串的操作效率

构造方法

  • public StringJoiner(间隔符号):创建一个StringJoiner对象,指定拼接时的间隔符号
  • public StringJoinner(间隔符号,开始符号,结束符号):
StringJoiner sj=new StringJoiner("---");
sj.add("aaa").add("bbb");
System.out.println(sj);//aaa---bbb

成员方法

  • public StringJoiner add(添加的内容):添加数据,并返回对象本身
  • public int length():返回长度
  • public String to String():转换为String

字符串原理

![[B$LDFEIU@PIRCMSR4@~(8.png

O_C~~D2V9%J4SX{B`~PUDGR.png

)JOBK@$_N21_CC$1IZ4U5.png

WGJ2W~$GCM%%4P02K7(FE}M.png