练习1:键盘录入任意的字符串,打乱里面的内容

思路:①键盘录入一个字符串

           ②将字符串转换为数组存储

           ③利用Random()方法进行随机交换

           ④转换为字符串

package com.lkbhua.Test;

import java.util.Random;
import java.util.Scanner;

public class test11 {
    public static void main(String[] args) {
        /*键盘录入任意的字符串,打乱里面的内容*/
        // 1、键盘录入任意字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入任意字符串:");
        String str = sc.next();

        // 2、转换为数组
        char[] chs = str.toCharArray();

        // 3、打乱里面的内容
        Random random = new Random();
        for (int i = 0; i < chs.length; i++) {
            int index = random.nextInt(chs.length);
            char temp = chs[i];
            chs[i] = chs[index];
            chs[index] = temp;
        }

        // 4、转回字符串
        String newStr = new String(chs);
        System.out.println(newStr);

    }
}

练习2  可以是小写字母,也可以是大写字母,还可以是数字

规则:长度为5

           内容中是四位数母,1位数字

           其中数字只有1位,但是可以出现在任意位置

思路:①可以把所有的大小字母放在一个数组中

           ②从数组中随机的获取4次

           ③生成一个随机的0-9的数字拼接到最后

           ④输出结果

package com.lkbhua.Test;

import java.util.Random;

public class test12 {
    public static void main(String[] args){
        /*练习2: 可以是小写字母,也可以是大写字母,还可以是数字
    规则:长度为5
         内容中是四位数母,1位数字
         其中数字只有1位,但是可以出现在任意位置*/

        // 1、把所有的大小字母放在同一个数组当中
        char[] chs = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
                      'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};

        // 2、创建随机数对象和字符串对象
        Random random = new Random();
        String str= "";
        StringBuilder sb = new StringBuilder();

        // 3、随机获取4次
        for (int i = 0; i < 4; i++) {
            int index = random.nextInt(chs.length);
            str = str + chs[index];
        }
        System.out.println(str);

        // 4、随机获取一个数字
        int number = random.nextInt(10);
        str = str + number;
        System.out.println(str);
    }

}

练习3  给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也只能用字符串形式表示。

package com.lkbhua.Test;

import java.util.Random;
import java.util.Scanner;

public class test13 {
    public static void main(String[] args) {
        /*给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,
        它们的乘积也只能用字符串形式表示。
        字符串只有加操作*/

        // 1、输入两个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数字类型的字符串:");
        String num1 = sc.next();
        System.out.println("请输入第二个数字类型的字符串:");
        String num2 = sc.next();

        // 2、把num1和num2变成对应的整数才可以
        // 先遍历字符串,得到对应的整数
        int n1 = 0;
        for (int i = 0; i < num1.length(); i++) {
            char c = num1.charAt(i);
            n1 = n1 * 10 + (c - '0');
        }
        int n2 = 0;
        for (int i = 0; i < num2.length(); i++) {
            char c = num2.charAt(i);
            n2 = n2 * 10 + (c - '0');
        }

        // 3、利用整数进行相乘
        int result = n1 * n2;

        // 4、把结果变成字符串
        String result1 = result + "";
        System.out.println(result);
    }
}

练习4  给你一个字符串s,由若干单词组成,单词前后用一些字符隔开,

           返回字符串最后一个单词的长度。

           单词是指仅有字母组成、不包含任何空格字符的最大字字符串。

示例: s=“Hello World” 输出:5

package com.lkbhua.Test;

public class test14 {
    public static void main(String[] args) {
        /*练习4 给你一个字符串s,由若干单词组成,单词前后用一些字符隔开,
               返回字符串最后一个单词的长度。
               词是指仅有字母组成、不包含任何空格字符的最大字字符串。
         示例: s=“Hello,World” 输出:5*/

        // 倒着遍历
        // 直到遇见空格,就结束
        String s = "Hello World";
        int length = 0;
        for (int i = s.length() - 1; i >= 0; i--) {
            if (s.charAt(i) == ' ') {
                break;
            }
            length++;
        }
        System.out.println(length);
    }
}

            

声明:

以上均来源于B站@ITheima的教学内容!!!

本人跟着视频内容学习,整理知识引用

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐