Java实验九

1、定义一个 StringBuffer 方法对象,然后通过 append()方法向对象中添加 26 个小写字母,要求每次只添加一次,共添加 26 次,然后按照逆序的方式输出,并且可以删除前 5 个字符。

public class Main {
    public static void main(String args[]) {
        StringBuffer alpha = new StringBuffer();
        for (int i = 0; i < 26; i++) {
            alpha.append((char) (i + (int) 'a'));
        }
        System.out.println("添加26个字母:" + alpha);
        alpha.reverse();
        System.out.println("逆序输出:" + alpha);
        alpha.delete(0, 5);
        System.out.println("删除前5个字符:" + alpha);
    }
}

在这里插入图片描述

2、利用 Random 类产生 5 个 1~30 之间(包括 1 和 30)的随机整数。

import java.util.Random;

public class Main {
    public static void main(String args[]) {
        Random rand = new Random();
        int n = 0;
        for (int i = 0; i < 5; i++) {
            n = rand.nextInt(30) + 1;
            System.out.println(n);
        }
    }
}

在这里插入图片描述

3、输入一个 Email 地址,然后使用正则表达式验证该 Email 地址是否正确。

import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String email = scanner.nextLine();
        String regex = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);
        if (matcher.matches()) {
            System.out.println("Email地址合法。");
        } else {
            System.out.println("Email地址不合法!");
        }
    }
}

在这里插入图片描述在这里插入图片描述

4、编写程序,用 0~1 之间的随机数来模拟扔硬币实验,统计扔 1000 次后出现正反面的次数并输出。

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random rand = new Random();
        int front = 0;  //正面
        int reverse = 0;  //反面
        for (int i = 0; i < 1000; i++) {
            if (rand.nextInt(2) == 1)
                front++;
            else
                reverse++;
        }
        System.out.println("正面出现次数为:" + front);
        System.out.println("反面出现次数为:" + reverse);
    }
}

在这里插入图片描述

5、按照“姓名:年龄:成绩|姓名:年龄:成绩”的格式定义字符串“张三:21:98|李四:22:89|王五:20:70”,要求将每组值分别保存在 Student 对象之中,并对这些对象进行排序,排序的原则为:按照成绩由高到低排序,如果成绩相等,则按照年龄由低到高排序。

import java.util.Arrays;

class Student implements Comparable<Student> {  // 指定类型Student
    private String name;
    private int age;
    private int score;

    public Student(String name, int age, int score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    public String toString() {  // 覆写toString方法
        return "姓名:" + this.name + "  年龄:" + this.age + "  成绩:" + this.score;
    }

    public int compareTo(Student stu) {  // 覆写compareTo方法
        if (this.score > stu.score) {
            return -1;
        } else if (this.score < stu.score) {
            return 1;
        } else {
            if (this.age > stu.age) {
                return 1;
            } else if (this.age < stu.age) {
                return -1;
            } else {
                return 0;
            }
        }
    }
}

public class Main {
    public static void main(String[] args) {
        String str = "张三:21:98|李四:22:89|王五:20:70";
        String[] res = str.split("\\|");
        Student[] stu = new Student[res.length];
        for (int i = 0; i < res.length; i++) {
            String[] temp = res[i].split(":");
            stu[i] = new Student(temp[0], Integer.parseInt(temp[1]), Integer.parseInt(temp[2]));
        }
        Arrays.sort(stu);
        for (Student s : stu) {
            System.out.println(s);
        }
    }
}

在这里插入图片描述

6、给定下面的 HTML 代码:

<font face=”Arial,Serif” size=+2” color=”red”>

要求对内容进行拆分,拆分之后的结果是:
Face Arial Serif
size +2
color red

参见:https://developer.aliyun.com/article/745223
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String str = "<font face=\"Arial,Serif\" size=\"+2\" color=\"red\">";
        String pat = "\\w+=\"[a-zA-Z0-9,\\+]+\"";
        Pattern p = Pattern.compile(pat);
        Matcher m = p.matcher(str);
        while (m.find()) {
            String temp = m.group(0);
            String result[] = temp.split("=");
            System.out.println(result[0] + " " + result[1].replaceAll("\"", ""));
        }
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Re:从零开始的代码生活

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

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

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

打赏作者

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

抵扣说明:

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

余额充值