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("\"", ""));
}
}
}