1.将字符串「a-b-c-d-e-f」按 「-」 切割,找到 「c」字符, 替换为大写,然后倒序输出 「f-e-d-C-b-a」
package demo03;
/**
* 将字符串「a-b-c-d-e-f」按 「-」 切割,找到 「c」字符,
* 替换为大写,然后倒序输出 「f-e-d-C-b-a」
* @author 26966
*
*/
public class Test1 {
public static void main(String[] args) {
//定义初始字符串
String s="a-b-c-d-e-f";
//将字符串转换为数组
String[] str=s.split("-");
//遍历数组
for(int i=0;i<str.length;i++) {
//找到"c"转换为大写
if(str[i].equals("c")) {
str[i]=str[i].toUpperCase();
}
}
//定义空字符串temp,利用反向遍历和累加生成反转字符串。
String temp = "";
for (int i = str.length - 1; i >= 0; i--) {
temp += str[i] + "-";
}
// 利用substring方法来输出字符串
System.out.println(temp.substring(0, temp.length()-1));
}
} //运行结果:f-e-d-C-b-a
2. 定义学生类(包含学号、姓名、年龄),将你所在小组组员添加到一个集合中,并按学号排序后输出。
package demo03;
/**
* 定义学生类(包含学号、姓名、年龄),将你所在小组组员添加到一个集合
* 中,并按学号排序后输出
* @author 26966
*
*/
public class Student implements Comparable<Student> {
//定义Student属性学号,姓名,年龄
private int code;
private String name;
private int age;
//封装
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//建立有参构造器
public Student(int code, String name, int age) {
super();
this.code = code;
this.name = name;
this.age = age;
}
//重写比较方法
public int compareTo(Student o) {
int flag = 0;
if(this.code>o.code) {
flag=-1;
}else if(this.code==o.code) {
flag=0;
}else if(this.code<o.code) {
flag=1;
}
return flag;
}
//重写toString方法
@Override
public String toString() {
return "Student [code=" + code + ", name=" + name + ", age=" + age + "]";
}
}
建立测试类
package demo03;
/**
* 建立测试类,将小组组员添加到一个集合
* 中,并按学号排序后输出
*/
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
//new出集合
List<Student> java103=new ArrayList<Student>();
//new出学生对象
Student stu1 = new Student(1, "Tom", 15);
Student stu2 = new Student(3, "Jack", 13);
Student stu3 = new Student(2, "Helen", 18);
Student stu4 = new Student(4, "May", 12);
//把学生对象放入集合
java103.add(stu1);
java103.add(stu2);
java103.add(stu3);
java103.add(stu4);
// 按学号倒叙排列
Collections.sort(java103);
// 遍历学生,输出结果
for (Student stu : java103) {
System.out.println(stu);
}
}
}//运行结果:Student [code=4, name=May, age=12]
Student [code=3, name=Jack, age=13]
Student [code=2, name=Helen, age=18]
Student [code=1, name=Tom, age=15]
3.紧接第二题,用单例设计一个服务类,并定义一个方法,可以随机抽取集合中的某个学生对象,并打印输出。
单例服务类
package demo03;
import java.util.List;
/**
* 单例服务类,里面有随机选择方法
* @author 26966
*
*/
public class Service {
//new出单例对象
private static Service service = new Service();
//构造器
private Service() {
}
//getInstance方法,以便获得实例
public static Service getInstance() {
return service;
}
//建立随机获得集合属性的方法
public Student randomStu(List<Student> stus) {
//非空判断
if (null != stus && !stus.isEmpty()) {
//Math.random() * stus.size()获得随机数
return stus.get((int)(Math.random() * stus.size()));
} else {
return null;
}
}
}
测试类,实现随机选取
package demo03;
/**
* 主类用来随机选选取学生
*/
import java.util.ArrayList;
import java.util.List;
public class Test3 {
public static void main(String[] args) {
//建立学生集合
List<Student> teams = new ArrayList<Student>();
//new出学生对象
Student stu1 = new Student(1, "Tom", 15);
Student stu2 = new Student(3, "Jack", 13);
Student stu3 = new Student(2, "Helen", 18);
Student stu4 = new Student(4, "May", 12);
//将对象插入集合
teams.add(stu1);
teams.add(stu2);
teams.add(stu3);
teams.add(stu4);
// 获取单例对象
Service service = Service.getInstance();
System.out.println("==========随机抽取学生=============");
//调用随机选取方法
Student randomStu = service.randomStu(teams);
System.out.println(randomStu);
}
}