重学Java(020)—— Java基础知识(字符串的截取、字符串的转换、字符串的分割、两个练习)

一、字符串的截取

字符串的截取意思是在一个完整的字符串中,拿出一段来,产生一个新的字符串,常用的字符串的截取方法有两种:

  • public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串。
  • public String substring(int begin, int end):截取从begin开始,一直到end结束,中间的字符串。
    备注:[begin,end),包含左边,不包含右边。

下面用代码举例说明:

public class Demo03Substring {

    public static void main(String[] args) {
        String str1 = "HelloWord";
        String str2 = str1.substring(5);
        System.out.println(str1); //HelloWorld 原封不动
        System.out.println(str2); // Word 新字符串
        System.out.println("----------------------");

        String str3 = str1.substring(4,7);
        System.out.println(str3); //oWo
        System.out.println("----------------------");

        //下面这种写法,字符串的内容仍然是没有改变的
        //下面有两个字符串:"Hello","Java"   strA中保存的是地址值
        //地址值由一开始的Hello的地址值变成了Java的地址值
        String strA = "Hello";
        System.out.println(strA);
        strA = "Java";
        System.out.println(strA);
    }

}

二、字符串的转换

字符串的转换意思是将一个完整的字符串转换为另一种形式,例如字符数组、字节数组,也可以将字符串之中的内容进行替换,常用的方法如下:

  • public char[] toCharArray():将当前字符串拆分成为字符数组作为返回值。
  • public byte[] getBytes():获得当前字符串底层的字节数组。
  • public String replace(CharSequence oldString,CharSequence newString):将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串。
    备注:CharSequence意思就是说可以接收字符串类型

下面用代码举例说明:

public class Demo04StringConvert {

    public static void main(String[] args) {

        // 转换成为字符数组
        char[] chars = "Hello".toCharArray();
        System.out.println(chars[0]); // H
        System.out.println(chars.length); // 5
        System.out.println("-----------------");

        //转换成为字节数组
        byte[] bytes = "abc".getBytes();
        for (int i = 0; i < bytes.length; i++) {
            System.out.println(bytes[i]);
        }
        System.out.println("-----------------");

        //字符串的内容替换
        String str1 = "How do you do?";
        String str2 = str1.replace("o", "*");
        System.out.println(str1); // How do you do?
        System.out.println(str2); // H*w d* y*u d*?
        //你品,你细品
        String lang1 = "会不会玩,你大爷的!";
        String lang2 = lang1.replace("你大爷的", "****");
        System.out.println(lang1); // 会不会玩,你大爷的!
        System.out.println(lang2); // 会不会玩,****!

    }

}

三、字符串的分割

分割字符串是指将一个完整的字符串,按照参数的规则,将字符串分成几部分:

  • public String[] split(String regex):按照参数的规则,将字符串切分成为若干部分。

代码举例:

public class Demo05StringSplit {

    public static void main(String[] args) {
        String str1 = "aaa,bbb,ccc";
        String[] array1 = str1.split(",");
        for (int i = 0; i < array1.length; i++) {
            System.out.println(array1[i]);
        }
        System.out.println("-------------------");

        String str2 = "aaa bbb ccc";
        String[] array2 = str2.split(" ");
        for (int i = 0; i < array2.length; i++) {
            System.out.println(array2[i]);
        }
        System.out.println("------------------ ");

        String str3 = "XXX.YYY.ZZZ";
        String[] array3 = str3.split("\\.");
        System.out.println(array3.length); // 0
        for (int i = 0; i < array3.length; i++) {
            System.out.println(array3[i]);
        }
    }

}

四、两个练习

Demo1:定义一个方法,把数组{1,2,3}按照指定个格式拼接成一个字符串。格式参照如下:[word1#word2#word3]。

思路:

  1. 首先准备一个int[]数组,内容是:1、2、3
  2. 定义一个方法,用来将数组变成字符串
    三要素
    返回值类型:String
    方法名称:fromArrayToString
    参数列表:int[]
  3. 格式:[word1#word2#word3]
    用到:for循环、字符串拼接、每个数组元素之前都有一个word字样、分隔使用的是#、区分下一个是输出最后一个
  4. 调用方法,得到返回值,并打印结果字符串

下面给出代码示例:

public class Demo06StringPractice {

    public static void main(String[] args) {
        int[] array = {1, 2, 3};

        String  result = fromArrayToString(array);
        System.out.println(result);
    }

    public static String fromArrayToString(int[] array) {
        String  str = "[";
        for (int i = 0; i < array.length; i++) {
            if (i == array.length - 1) {
                str += "word" + array[i] + "]";
            } else {
                str += "word" + array[i] + "#";
            }
        }
        return str;
    }
}

Demo2:键盘输入一个字符串,并且统计其中各种字符出现的次数。种类有:大写字母、小写字母、数字、其他。

思路:

  1. 既然用到键盘输入,就想到scanner
  2. 键盘输入字符串,String str = sc.next();
  3. 定义四个变量,分别代表四种字符各自出现的次数。
  4. 需要对字符串一个字、一个字地检查,String–>char[],方法就是toCharArray()
  5. 遍历char[]字符数组,对当前字符的种类进行判断,并且用四个变量进行++动作。
  6. 打印输出四个变量,分别代表四种字符出现次数。

下面给出代码示例:

import java.util.Scanner;

public class Demo07StringCount {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String input = sc.next(); // 获取键盘输入的字符串

        int countUpper = 0; //大写字母
        int countLower = 0; //小写字母
        int countNumber = 0; //数字
        int countOther = 0; //其他字符

        char[] charArray = input.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            char ch = charArray[i]; //当前单个字符
            if ('A' <= ch && ch <= 'Z') {
                countUpper++;
            } else if ('a' <= ch && ch <= 'z') {
                countLower++;
            } else if ('0' <= ch && ch <= '9') {
                countNumber++;
            } else {
                countOther++;
            }
        }

        System.out.println("大写字母有:" + countUpper);
        System.out.println("小写字母有:" + countLower);
        System.out.println("数字有:" + countNumber);
        System.out.println("其他类型有:" + countOther);
    }

}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值