Java练习题8

/第二题:分析以下需求,并用代码实现
1.定义String getStr()方法
功能描述:
获取长度为5的随机字符串,字符串由随机的5个大小写字母组成
2.在main方法中调用上述方法,并打印结果
/

/*大写:65-90
小写:97-122*/
import java.util.Random;

public class randomStr {
    public static void main(String[] args) {
        //调用方法
        String str = getStr();
        //输出
        System.out.println(str);
    }

    public static String getStr() {
        //构造StringBuilder对象
        StringBuilder sb = new StringBuilder();
        Random r = new Random();
        while (true) {
            
            if (sb.length() == 5) {
                //控制字符串长度为5
                break;
            } else {
				//随机生成65-122的随机数
				int a = r.nextInt(58) + 65;
                //判断生成的随机数在不在大写和小写字母范围内
                if ((a >= 65 && a <= 90) || (a >= 97 && a <= 122)) {
                    //将数字转换成相应的字母
                    char cc = (char) a;
                    //然后将字符添加到sb中
                    sb.append(cc);
                } else {
                    continue;
                }
            }
        }
        String s = sb.toString();
        return s;
    }
}

/第三题: 分析以下需求,并用代码实现
1.键盘录入一个字符串
2.将该字符串变成字符数组(不能使用toCharArray()方法)
3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
4.如果第一位和最后一位的内容不相同,则交换
5.将字符数组中索引为偶数的元素变成’~’
6.打印数组元素的内容
/

public class StringToArray {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String line = sc.nextLine();
        char[] ch = new char[line.length()];
        //将该字符串变成字符数组(不能使用toCharArray()方法)
        StringToArray(line, ch);
        //打印数组
        printArray(ch);
        //将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
        HighToLower(ch);
        //打印数组
        printArray(ch);
        //如果第一位和最后一位的内容不相同,则交换
        changeArray(ch);
        //打印数组
        printArray(ch);
        //将字符数组中索引为偶数的元素变成'~'
        changeDouble(ch);
        //打印数组
        printArray(ch);


    }

    public static void StringToArray(String line, char[] ch) {

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

    public static void HighToLower(char[] ch) {
        for (int i = 0; i < ch.length; i++) {
            //首先判断是不是大写字母
            //将字符转成对应的数字
            int a = (int) ch[i];
            if (a >= 65 && a <= 90) {
                //转换成小写字母对应的数字
                a = a + 32;
                //把数字转换成小写字母并存入数组
                ch[i] = (char) a;
            } else {
                //不是大写字母
                continue;
            }
        }
    }

    public static void changeArray(char[] ch) {
        //如果最后一个元素和第一个不相同,就交换
        if (ch[0] != ch[ch.length - 1]) {
            char temp = ch[0];
            ch[0] = ch[ch.length - 1];
            ch[ch.length - 1] = temp;
        }
    }

    public static void changeDouble(char[] ch) {
        //遍历数组,判读偶数位,将偶数位置元素更换为〜
        for (int i = 0; i < ch.length; i++) {
            if (i % 2 == 0) {
                ch[i] = '~';
            }
        }
    }

    public static void printArray(char[] ch) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < ch.length; i++) {
            if (i == ch.length - 1) {
                sb.append(ch[i]);
            } else {
                sb.append(ch[i] + ", ");
            }
        }
        sb.append("]");

        System.out.println(sb.toString());
    }
}

你可能感兴趣的:(Java练习题基础版)