个人技术分享

关于String

API&字符串

  • API:应用程序编程接口

  • JavaAPI:就是jdk中提供各种功能的Java类

String概述

  • java.lang.String 类代表字符串,java程序中的所有字符串文字都为此类的对象

  • String的注意点

    字符串的内容是不会发生改变的,它的对象在创建之后不能被修改

  • 创建String对象的两种方式

    • 直接赋值

    • new

      //空参构造
      String s2 = new String();
      //传递一个字符串,根据传递的字符串内容再创建一个新的字符串对象
      String s3 = new String("abc");
      //传递一个字符数组,根据传递的字符数组内容再创建一个新的字符串对象
      char[] chs = {'a','b','c'}
      String s4 = new String(chs);
      //传递一个字节数组,根据传递的字节数组内容再创建一个新的字符串对象
      byte[] bytes = {97,98,99,100,};
      String s5 = new String(bytes);
      System.out.println(s5);//abcd

Java的常用方法(比较)

  • ==,比较基本数据类型,比的是数据值

  • ==,比较引用数据类型,比的是地址值

  • 字符串比较

    • boollean equals 方法(要比较的字符串)

    • Boolean equalslgnoreCase(要比较的字符串):忽略大小写

遍历字符串

public char charAt(int index);//根据索引返回字符
public int length();//返回此字符串的长度
//数组的长度:数组名.length()
//字符串的长度:字符串对象.length()

统计字符次数

//键盘录入字符串,统计大写字符,小写字符个数
import java.util.Scanner;
​
public class String02 {
    public static void main(String[] args) {
        //1.键盘录入字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String str = sc.next();
        //2.计数器
        //定义三个计数器
        int bigCount = 0;
        int smallCount = 0;
        int numberCount = 0;
        //3.遍历字符串
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            System.out.println(ch);
            //判断字符是否是大写,小写,还是数字
            //如果是大写,小写,数字,计数器+1
            //4.输出结果
            if (ch >= 'A' && ch <= 'Z') {
                bigCount++;
            } else if (ch >= 'a' && ch <= 'z') {
                smallCount++;
            } else if (ch >= '0' && ch <= '9') {
                numberCount++;
            }
        }
        //4.输出结果
        System.out.println("大写字母有:" + bigCount + "个");
    }
}
  • //char类型的变量在参与计算的时候自动类型提升为int类型,查询ascii码表
  • '0'所对应的数字是48

  • '9'所对应的数字是57

拼接字符串

public class String03 {
    public static void main(String[] args) {
        //定义一个方法,把int数组中的数据按照指定格式拼接成一个字符串返回,
        // 调用该方法,使用拼接后的字符串
        //eg:
        //int[] arr = {1,2,3};
        //输出结果是“[1, 2, 3]”
​
        int[] arr = {1,2,3};
​
        String str = arrTostring(arr);
        System.out.println(str);
​
    }
​
    public static String arrTostring(int[] arr){
        if(arr == null){
            return "";
        }
        if (arr.length == 0){
            return "[]";
        }
​
        String result = "[";
        //当代码执行到这里,表示数组不是null也不是长度为0
        for (int i =0; i < arr.length; i++){
            //i索引 arr[i]元素
            if (i == arr.length - 1) {
                result = result + arr[i];
            }else{
​
                result = result + arr[i] + ",";
            }
              }
        //此时拼接右括号
        result = result + "]";
        return result;
    }
}

字符串的反转

public class String04 {
    public static void main(String[] args) {
        String result = reverseString("abc");
        System.out.println(result);
    }
    
    //实现字符串的反转
    //需要字符串
    //需要结果进行输出
    public static String reverseString(String str) {
        //abc
        //cba
        String result = "";
        //shift+f6批量修改
        for (int i = str.length() - 1; i >= 0; i--) {
            //i,一次表示每一个索引(倒着的)
            char c = str.charAt(i);
            result = result + c;
        }
        return result;
    }
}

方法

  • String substring(int beginIndex,int endIndex)//包头不包尾

  • String substring(int beginIndex)//默认截取到末尾

  • String replace(旧值,新值)替换

    注意:只有返回值才是替换之后的结果

    replace 区分大小写

StringBuilder

  • 可以看成一个容器,创建之后的内容可变

  • 作用:提高字符串操作效率

  • public StringBuillder() 创建一个空白可变字符

  • public StringBuillder(String str) 创建一个可变字符对象

  • public StringBuillder append(任意类型) 添加数据

  • public StringBuillder reverse() 反转容器中的内容

  • public int length() 返回长度(字符出现个数)

  • public String to String() 转成String对象

StringJoiner

  • tringJoiner 可以看作一个容器,创建的内容是可变的

  • 作用:提高字符串的操作效率,代码编写简洁

  • JDK8后出现

  • public StringJoiner(间隔符号)

  • public StringJoiner(间隔符号,开始符号,结束符号)

  • public StringJoiner add(添加的内容)

  • public int length()

  • public String toString()