String的常用方法

Java字符串操作详解与示例
这篇博客详细介绍了Java中String、StringBuffer类的区别及其常用方法,包括构造方法、获取方法、判断方法和其他实用方法,如字符串的替换、切割、转换等操作,并通过实例演示了如何在实际编程中应用这些方法。
package demo.api;

import java.util.Arrays;
import java.util.Scanner;

/*
 * String 和 StringBuffer 区别:
 * 1.StringBuffer没有重写equals方法
 * 2.StringBuffer不能使用+
 * */
//字符串首尾去除空格—字符串反转—查询指定字符串出现次数 见 algorithm包
class StringTest {
    private static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        //constructorMethod();//String 的构造方法
        //getMethod();    //String的获取方法
        //judgmentMethod();   //String的判断方法
        otherMethod();  //String的其他方法
        //conversion(); //转换的方法。字节数组与字符数组、字符串他们三者之间是可以互相转换。
    }

    //String 的构造方法
    private static void constructorMethod() {
        String str = new String();

        long num = 9223372036854775807L;
        str = String.valueOf(num);
        System.out.println("使用一个long类型构建一个字符串对象:" + str);

        byte[] buf = {97, 98, 99};
        str = new String(buf);
        System.out.println("使用一个字节数组构建一个字符串对象:" + str);
        //使用一个字节数组构建一个字符串对象,指定开始解码的索引值和解码的个数。
        str = new String(buf, 1, 2);
        System.out.println("指定开始解码的索引值和解码的个数:" + str);//bc

        char[] arr = {'明', '天', '是', '圣', '诞'};
        str = new String(arr);
        System.out.println("使用字符数组构建一个字符串:" + str);
        str = new String(arr, 3, 2);
        System.out.println("指定开始解码的索引值和解码的个数:" + str);//圣诞

        int[] buf2 = {65, 66, 67};
        str = new String(buf2, 0, 3);
        System.out.println("使用一个字符数组构建一个字符串:" + str);
    }

    //String的获取方法
    private static void getMethod() {
        String str = "abc中国ab中国";
        System.out.println("根据索引值获取对应的字符:" + str.charAt(3));//中
        //如果子串没有出现 在字符串中,那么则返回-1
        System.out.println("查找子串第一次出现的索引值:" + str.indexOf("中国"));//3
        System.out.println("从指定下标开始查找子串第一次出现的索引值:" + str.indexOf("中国", 4));//7
        System.out.println("查找子串最后一次出现的索引值:" + str.lastIndexOf("中国"));//7
    }

    //String的判断方法
    private static void judgmentMethod() {
        String str = "";
        System.out.println("判断字符串是否为空内容:" + str.isEmpty());
        str = "Demo.java";
        System.out.println("是否以指定 的字符串开始:" + str.startsWith("Demo"));
        System.out.println("是否以指定 的字符串结束:" + str.endsWith("va"));
        System.out.println("判断字符串是否包含指定的内容:" + str.contains("Demo"));
        System.out.println("判断两个字符串的内容是否一致:" + "DEMO.JAVA".equals(str));
        System.out.println("判断两个字符串的内容是否一致(忽略大小写):" + "DEMO.JAVA".equalsIgnoreCase(str));
        System.out.println("abc".compareTo("abc"));//返回this - " " (this比" "大多少)//前面比过后面就不再比较
    }

    //String的其他方法
    private static void otherMethod() {
        String str = "今天晚上不考试";
        System.out.println("以旧换新:" + str.replace("不", "要好好"));

        str = "大家-下-午-好";
        String[] str2 = str.split("-");
        System.out.println("根据指定的字符进行切割:" + Arrays.toString(str2));//[大家, 下, 午, 好]
        str = "大家.下.午.好";
        String[] str3 = str.split("\\.");
        System.out.println("根据指定的字符进行切割:" + Arrays.toString(str3));//[大家, 下, 午, 好]
        for (int i = 0; i < str3.length; i++) {
            System.out.println(str3[i]);
        }

        str = "广州传智播客";
        System.out.println("指定开始的索引值截取子串:" + str.substring(2));//传智播客
        System.out.println("指定开始和结束的索引值截取子串:" + str.substring(2, 6));//[...) 前闭后开

        str = "abC中国";
        System.out.println("转大写:" + str.toUpperCase());//ABC中国
        str = "AbdfSDD";
        System.out.println("转小写:" + str.toLowerCase());//abdfsdd

        str = "         大家最近        都非常努力            ";
        System.out.println("去除字符串首尾的空格:" + str.trim());//大家最近        都非常努力;
        System.out.println("去除所有空格:" + str.replace(" ", ""));//大家最近都非常努力

        System.out.println("String的多行输入(^D结束):");
        str = sc.nextLine();
        while (sc.hasNext()) {//hasNext()函数,作用就是判断是否还有下一个元素,以CTRL+D结束。
            str += "\n";
            str += sc.nextLine();
        }
        System.out.println("多行输入结果:" + str);
    }

    //String转char[],byte[],
    private static void conversion() {
        String str = new String("abc");
        System.out.println("字符串的内容:" + str);

        char[] buf = str.toCharArray();  //把字符串转换字符数组
        System.out.println(/*"字符数组:" + */(buf));
        System.out.println("字符数组:" + Arrays.toString(buf));
        byte[] buf2 = str.getBytes();    //把字符串转字节数组
        // System.out.println("字节数组:" + buf2);
        System.out.println("字节数组:" + Arrays.toString(buf2));

        char[] ch = {'a', 'b', 'c'};
        str = String.valueOf(ch);
        System.out.println("将字符数组转换为字符串:" + str);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值