Java编程练习题:内置类(Math类、Random类、Scanner类、Sting类)

本文通过一系列Java编程实例,展示了如何进行字符串回文判断、去除空格、大小写转换、单词反序输出、URL参数提取、特定字符定位、敏感词替换、猜数字和猜拳游戏等常见操作,涵盖了基础的字符串处理技巧和简单的游戏算法实现。
摘要由CSDN通过智能技术生成

目录

1. 输入一个字符串,判断该字符串是否是回文字符串(面试题)

2. 去掉字符串中的所有空格

3. 将字母全部转换为大写或小写

4. 接收用户输入的一句英文,将其中的单词以反序输出

5. 从请求地址中提取出用户名和域名

6. 让用户输入一句话,找出所有"呵"的位置。

7. 让用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变成”老牛很**”;

8.猜字游戏,计算机随机一个0~100的整数,每次用户输出字猜。

9. 猜拳游戏,石头剪刀布。随机数生成石头剪刀布


1. 输入一个字符串,判断该字符串是否是回文字符串(面试题)

例如:123454321

方法一:使用substring()

方法二:直接charAt()

import java.util.Scanner;

public class StringTest1 {
    // 给定一个字符串,判断该字符串是否是回文字符串
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入任意字符串");
        String str = scan.next();
        scan.close();
        boolean result = judgeStr1(str);
        if(result) {
            System.out.println(str + "是回文");
        } else{
            System.out.println(str + "不是回文");
        }

    }

    public static boolean judgeStr(String str) {
        String str1 = str.substring(0, str.length() / 2);//0 1 2 3 4  5/2
        System.out.println(str1);
        String str2;
        if(str.length() % 2 == 0) {
            str2 = str.substring(str.length() / 2, str.length());
        }else {
            str2 = str.substring(str.length() / 2 + 1, str.length());
        }
        System.out.println(str2);
        for (int i = 0; i < str1.length(); i++) {
            if(str1.charAt(i) == str2.charAt(str1.length() - 1 - i)){
                return true;
            }
        }
        return false;
    }

    public static boolean judgeStr1(String str) {
        int starIndex = 0;
        int endIndex = str.length() - 1;
        boolean isFlag = true;
        while (starIndex < endIndex) {
            if(str.charAt(starIndex) != str.charAt(endIndex)) {
                isFlag = false;
                break;
            }else{
                starIndex++;
                endIndex--;
            }
        }
        if (isFlag) {
            return true;
        }
        return false;
    }
}

结果:

2. 去掉字符串中的所有空格

public class RemoveSpace {
    public static void main(String[] args) {
        String str1 = " J a v a ";
        System.out.println(removeSpace(str1));
    }

    public static String removeSpace(String str){
        String result = str.trim();  // 去除首尾空格
        String str1 = "";
        for (int i = 0; i < result.length(); i++) {
            if (result.charAt(i) == ' '){
                continue;
            }else {
                str1 += result.charAt(i);
            }
        }
        return str1;
    }
}

结果:

3. 将字母全部转换为大写或小写

思路:大小写字母的ASCII码值相差32

public class SwitchUpperLower {
    public static void main(String[] args) {
        String s = "abcD";
        System.out.println(s.toUpperCase());
        System.out.println(s.toLowerCase());
        System.out.println(switchUpper(s));
        System.out.println(switchLower(s));
    }
    public static String switchUpper(String str) {
        String s = "";
        for(int i = 0; i < str.length(); i++) {
            char sub = str.charAt(i);
            if(sub >= 'a' && sub <= 'z') {
                sub = (char)(sub - 32);
            }
            s += sub;
        }
        return s;
    }
    public static String switchLower(String str) {
        String s = "";
        for(int i = 0; i < str.length(); i++) {
            char sub = str.charAt(i);
            if(sub >= 'A' && sub <= 'Z') {
                sub = (char)(sub + 32);
            }
            s += sub;
        }
        return s;
    }
}

结果:

4. 接收用户输入的一句英文,将其中的单词以反序输出

“hello c sharp”→“sharp c hello”

import java.util.Scanner;

public class BackStr {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("请输入一句英文:");
        String str = scan.nextLine();
        String result = backStr(str);
        System.out.println(result);
    }

    public static String backStr(String s) {
        String[] result = s.split(" ");
        String str = "";
        for (int i = result.length - 1; i >= 0; i--) {
            System.out.println(result[i]);
            str += "".concat(result[i] + " ");
        }
        return str.trim();
    }
}

结果:

5. 从请求地址中提取出用户名和域名

http://www.163.com?userName=admin&pwd=123456

public class ExtractStr {
    /*
    从请求地址中提取出用户名和域名:
    http://www.163.com?userName=admin&pwd=123456
     */
    public static void main(String[] args) {
        String str = "http://www.163.com?userName=admin&pwd=123456";
        TiQu(str);
    }

    public static void TiQu(String str){
        String s1 = str.substring(str.indexOf("=") +1,str.indexOf("pwd") -1);
        String s2 = str.substring(str.lastIndexOf("=") +1);
        String s3 = str.substring(str.indexOf("/") +2, str.indexOf("?"));
        System.out.println("域名为:" + s3);
        System.out.println("密码为:" + s2);
        System.out.println("用户名为:" + s1);
    }
}

结果:

6. 让用户输入一句话,找出所有"呵"的位置。

import java.util.Scanner;

public class FindStr {
    /*
    让用户输入一句话,找出所有"呵"的位置。
     */
    public static void main(String[] args) {
        System.out.println("输入的字符串为:");
        Scanner scan = new Scanner(System.in);
        String s = scan.nextLine();
        findStr(s);
    }

    public static void findStr(String s){
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '呵') {
                System.out.println("呵位置在:" + i);
            }
        }
    }
}

结果:

7. 让用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变成”老牛很**”;

import java.util.Scanner;

public class SensitiveWords {
    /*
    让用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出,
    如:“老牛很邪恶”,输出后变成”老牛很**”
     */
    public static void main(String[] args) {
        System.out.println("输入的字符串为:");
        Scanner scan = new Scanner(System.in);
        String s = scan.nextLine();
        sensitiveWord(s);
    }

    public static void sensitiveWord(String s) {
        if (s.contains("邪恶")) {
            String result = s.replace("邪恶","**");
            System.out.println(result);
        }
    }
}

结果:

8.猜字游戏,计算机随机一个0~100的整数,每次用户输出字猜。

       提示如下:猜大了,重新猜;猜小了,重新猜;猜对了

import java.util.Scanner;

public class GuessNumber {
    public static void main(String[] args) {
        int num = (int)(Math.random() * 100);
        guessNum(num);
    }

    public static void guessNum(int a){
        int count = 1;
        while (count <= 3){
            System.out.print("请输入您第"+ count + "次猜的数字:");
            Scanner sc=new Scanner(System.in);
            int num = sc.nextInt();
            if (num == a){
                System.out.println("恭喜您猜对了!");
                break;
            }
            else if (num < a){
                System.out.println("很遗憾您猜小了!");
            }
            else if (num > a){
                System.out.println("很遗憾您猜大了!");
            }
            count ++;
        }
        System.out.println("很遗憾您没有猜出来,正确答案是:"+ a);

    }
}

结果:

9. 猜拳游戏,石头剪刀布。随机数生成石头剪刀布

(0:石头  1:剪刀  2:布)

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

public class GuessFinger {
    public static void main(String[] args) {
    /*
    9.猜拳游戏,石头剪刀布。随机数生成石头剪刀布
     */
        guessFinger();
    }

    public static void guessFinger() {
        Random random = new Random();
        int player1 = random.nextInt(3);
        System.out.print("请输入您的选项(0:石头  1:剪刀  2:布):");
        Scanner scanner = new Scanner(System.in);
        int player2 = scanner.nextInt();
        if (player1 == player2){
            System.out.println("您和我的想法一样,平局!!!");
        }else if ((player1 == 0 && player2 == 1) || (player1 ==1 && player2 ==2) ||(player1 ==2 && player2 ==0)){
            System.out.println("抱歉您输了!");
        }
        else if ((player1 == 1 && player2 == 0) || (player1 ==0 && player2 ==2) ||(player1 ==2 && player2 ==1)){
            System.out.println("恭喜您赢了!");
        }
        else {
            System.out.println("对不起,您的输入有误!!!");
        }
    }
}

结果: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Golang_HZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值