Java基础 -- String

本文深入探讨了Java中字符串(String)的使用技巧,包括字符串的创建、比较、遍历、拼接及字符计数等操作,并详细介绍了StringBuilder类的构造方法、字符串追加和反转功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

API

jdk中提供的一组Java类和接口的统称。需要我们学会查api文档
查文档的方式:
1、查看类在哪个包以及类的相关简介。
2、查看有哪些构造方法用于创建对象。
3、查看常见的成员方法以及成员方法的返回值

String类:字符串

  • 构造方法(创建对象)

    String(char[] chs); // 创建对象时,传入字符数组
    String(byte[] bts); // 创建对象时,传入字节数组
    常用:
    String s="abc";

  • 成员方法(查文档)

1、比较的方法:equals、equalsIgnoreCase
== :基本数据类型比较值,引用数据类型比较地址值。
比较字符串的值使用字符串的equals(String s)方法。
equals(String s):不忽略大小写比较。
equalsIgnoreCase(String s):忽略大小写比较 。

public class StringDemo1 {
    public static void main(String[] args) {
        String s1 = "abc";
        String s2 = "abc";
        String s3 = "ABC";
        String s4 = "AbC";

        System.out.println(s1 == s2); // true
        System.out.println(s1 == s3); // false
        System.out.println(s1 == s4); // false

        System.out.println("===========");

        System.out.println(s1.equals(s2)); // true
        System.out.println(s1.equals(s3)); // false
        System.out.println(s1.equals(s4)); // false

        System.out.println("===========");

        System.out.println(s1.equalsIgnoreCase(s2)); // true
        System.out.println(s1.equalsIgnoreCase(s3)); // true
        System.out.println(s1.equalsIgnoreCase(s4)); // true
    }
}

2、遍历字符串:

        考查知识点:获取字符串的长度以及根据索引获取字符
        `int length() // 返回字符串的长度`
       ` char charAt(int index)     // 返回在字符串指定索引的字符`
import java.util.Scanner;

/*
    遍历字符串
        length():返回一个字符串的长度
        charAt():返回一个字符串指定位置的字符(char)
 */
public class StringDemo3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);


        System.out.println("请输入一个字符串");
        String line = sc.nextLine();

        for (int i = 0; i < line.length(); i++) {
            System.out.println(line.charAt(i));
        }
    }
}

3、统计大写字母、小写字母、数字的个数
考查的知识点:获取字符串的长度以及根据索引获取字符
难点:如何判断字符是大写字母、小写字母、数字?

			if('A'<=ch && ch<='Z'){ // 判读大写字母
                bigCount++;
        	}else if('a'<=ch && ch<='z'){ // 判断小写字母
                smallCount++
            }else if('0'<=ch && ch<='9'){ // 判断数字
                numberCount++
            }
import java.util.Scanner;

public class StringDemo4 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个字符串:");
        String line = sc.nextLine();

        int bigCount = 0;    // 大写字母
        int smallCount = 0;  // 小写字母
        int numberCount = 0; // 数字
        int otherCount = 0;  // 其他

        for (int i = 0; i < line.length(); i++) {
            char ch = line.charAt(i);

            if (ch>='A' && ch<='Z') {
                bigCount++;
            } else if (ch>='a' && ch<='z') {
                smallCount++;
            } else if (ch>='0' && ch<='9') {
                numberCount++;
            } else {
                otherCount++;
            }
        }

        System.out.println("bigCount = " + bigCount);
        System.out.println("smallCount = " + smallCount);
        System.out.println("numberCount = " + numberCount);
        System.out.println("otherCount = " + otherCount);
    }
}

4、拼接字符串:
考查知识点:1、字符串遍历。2、字符串+或者+=任何数都是字符串。

public class StringDemo5 {
    public static void main(String[] args) {
        // 定义一个数组
        int[] arr = {12, 34, 56, 78, 98, 76, 54, 32};

        // 调用方法,以指定的方式打印数组
        String s = arrayToString(arr);

        System.out.println("s = " + s);

        for (int i = 0; i < s.length(); i++) {
            System.out.print(s.charAt(i));
        }
    }

    /*
        以指定方式打印数组
        返回值类型:String s
        参数:int[] arr
     */
    public static String arrayToString(int[] arr) {
        String s = "[";

        for (int i = 0; i < arr.length; i++) {
            if (arr.length-1 == i) {
                // 最后一个元素
                s += arr[i] + "]";
            } else {
                // 不是最后一个元素
                s += arr[i] + ", ";
            }
        }

        return s;
    }
}

5、总结:

	equals(String s):不忽略大小写比较
	equalsIgnoreCase(String s):忽略大小写比较

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

    char charAt(int index):根据字符串指定索引处的字符

    boolean	contains​(String s):判断字符串是否包含给定字符串s,如果包含返回值就为true,反之为falseboolean	endsWith​(String suffix):判断字符串是否以给定的suffix结尾
    boolean	startsWith​(String prefix):判断字符串是否以给定的prefix开头

    int	indexOf​(String str):返回指定子字符串第一次出现的字符串内的索引。

StringBuilder类:可变的字符串

  • 构造方法:创建对象

    1. StringBuilder​()
      创建一个没有任何内容StringBuilder对象,缓冲区初始容量为16个字符。

    2. StringBuilder​(String str)
      创建一个StringBuilder对象并指定初始化内容

    3. 例如:

      `StringBuilder sb=new StringBuilder("hello");`
      
  • 成员方法:查文档

    1. StringBuilder append​(任意类型 str):在原来的字符串后面追加(拼接)一个给定的字符串,返回值为原来的StringBuilder对象。

       ` sb.append("hello").append("world");//链式编程`
      
public class StringBuilderDmeo1 {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();

        //sb.append("Hello");
        //sb.append("World");

        //sb.append(100);
        //sb.append("JavaSE");
        
        // 链式编程
        // 字符串追加
        sb.append("Hello").append("World").append(100).append("JavaSE");
        System.out.println("sb = " + sb);

        // 字符串反转
        sb.reverse();

        System.out.println("sb = " + sb);
    }
}

  1. StringBuilder reverse​():StringBuilder中的字符串反转,返回值还是一个StringBuilder对象。

      `sb.reverse();`
    
import java.util.Scanner;

public class StringBuilderDemo3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个字符串:");
        String line = sc.nextLine();

        String s = resverse(line);
        System.out.println("s = " + s);
        
    }
    
    // 定义方法
    public static String resverse(String s) {
        StringBuilder sb = new StringBuilder(s);
        
        return sb.reverse().toString();
    }
}
  1. String toString​():将StringBuilder转化成String对象。
/*
    append(): 向原字符串后面追加指定字符串,返回原来的对象
    toString(): 把StringBuilder对象转化为String对象
    StringBuilder(String s): 把String对象转化为StringBuilder对象
 */
public class StringBuilderDemo2 {
    public static void main(String[] args) {
        // 定义一个数组
        int[] arr = {12, 34, 56, 78, 45};
        
        //调用方法
        String s = arrayToString(arr);

        // 打印结果
        System.out.println("s = " + s);
    }
    
    // 定义方法
    public static String arrayToString(int[] arr) {
        StringBuilder sb = new StringBuilder("[");
        for (int i = 0; i < arr.length; i++) {
            if (arr.length-1 == i) {
                sb.append(arr[i]).append("]");
            } else {
                sb.append(arr[i]).append(", ");
            }
        }
        return sb.toString();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值