StringBuilder是一个字符串缓冲区,可以往缓冲区中添加任何类型的数据,最终都会变成字符串
public StringBuilder append(任意类型数据)
可以添加任意类型的数据到缓冲区
注意:返回缓冲区本身(一般不用接受返回值,利用这个特性可以实现链式编程)
public StringBuiler reverse()
把缓冲区的内容反转
public String toString()
把缓冲区的内容转化为一个字符串
写一个方法,判断一个字符串是否为对称字符串
public class Demo1{
public static void main(String[] args){
boole f1=duicheng("ababa");
System.out.println(f1);
}
//判断一个字符串是否为对称字符串
public static boolean duicheng(String str){
//把str封装为StringBuilder,再对StringBuilder反转,再转化为字符串,再和原来的字符串相比较
return new StringBuilder(str).reverse().toString().euqlas(str);
}
}
写一个方法,把一个数组按照指定格式转化为字符串
public class Demo2{
public static void main(String[] args){
int[] array={1,2,3,4}
//调用方法把数组变成字符串
String res arrayToString(array);
System.out.println(res);
}
//把一个数组按照指定的格式转化为字符串"[元素1,元素2,元素3...]"
public static String arrayToString(int[] array){
StringBuilder sb=new StringBuilder("[");
for(int i=0;i<array.length;i++){
//如果元素是最后一个
if(i==array.length-1){
sb.append(array[i]).append("]");
}else{
sb.append(array[i].append(",");
}
}
//把最后的字符串返回
return sb.toString();
}
}
ArrayList表示一个集合(容器),它和数组最大的区别就是长度可变(想添加几个元素就可以添加几个元素)
对于集合的操作,无非就是常用的几种(增 删 查 改)
public boolean add(E e)
添加元素到集合末尾
public boolean add(int index,E e)
添加元素到集合的指定索引位置
public E remove(int index)
根据索引删除集合中的元素
注意:返回被删除的元素
public E set(int index,E e)
把指定索引的元素修改为新的元素
public E get(int index)
获取集合中指定的元素
public void clear()
清空集合中的元素
public int size()
获取集合的长度(元素的个数)
public boolean isEmpty()
判断集合是否为空
ArrayLIst添加字符串元素并遍历
public class Demo1{
public static void main(String[] args){
//创建一个元素为String的集合
ArrayList<String>list=new ArrayList<>();
list.add("hhhh");
list.add("llll");
list.add("vvvv");
//遍历集合中的元素
for (int i=0;i<list.size();i++){
//获取i索引位置的元素
String s=list.get(i);
System.out.println(s);
}
System.out.println("------------")
}
}
ArrayLIst添加自定义对象并遍历
public class Demo2 {
public static void main(String[] args) {
//创建一个元素为Student的集合
ArrayList<Student> list=new ArrayList<>();
/*
Student s1=new Student("小明",18);
Student s2=new Student("小黄",17);
Student s3=new Student("小刘",20);
Student s4=new Student("小王",19);
*/
//添加学生对象到集合
list.add(new Student("小明",18));
list.add(new Student("小黄",17));
list.add(new Student("小王",19));
list.add(new Student("小刘",20));
//遍历集合
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getName()+","+stu.getAge());
}
}
}
创建Student类省略
当程序运行的时候,显示下面的主页面。根据用户的选择执行不同的功能
---------学生管理系统主界面-------------
1.添加学生
2.查询学生
3.修改学生
4.删除学生
5.退出
请输入您的选择
编写Student类
每一个学生有 学号 姓名 年龄 地址这些属性信息。
/*
在实际开发中,用来描述数据的类称之为JavaBean类(实体类),有下面的要求
1.私有化成员变量
2.提供空参数构造方法
3.提供get和set方法
一般为了方便对类进行管理,把JavaBean类单独放在domain包里面。
*/
public class Student {
private String id; //学号
private String name; //姓名
private String age; //年龄
private String address; //地址
public Student() {
}
public Student(String id, String name, String age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
编写页面
public class Demo2 {
public static void main(String[] args) {
//创建集合,用来存储多个Student对象
ArrayList<Student> list = new ArrayList<>();
while (true) {
System.out.println("1.添加学生");
System.out.println("2.查询学生");
System.out.println("3.修改学生");
System.out.println("4.删除学生");
System.out.println("5.退出");
System.out.println("请输入您的选择:");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
//对输入的数据进行配匹,做出选择
switch (str) {
case "1":
//添加学生
addStudent(list);
break;
case "2":
//查询学生
findAll(list);
}
}
}
//添加学生
public static void addStudent(ArrayList<Student> array) {
//键盘录入学生信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的学号:");
String sid = sc.nextLine();
System.out.println("请输入学生的姓名:");
String sname = sc.nextLine();
System.out.println("请输入学生的年龄:");
String sage = sc.nextLine();
System.out.println("请输入学生的地址:");
String saddress = sc.nextLine();
//学生信息封装为Student对象
Student stu = new Student(sid, sname, sage, saddress);
//把对象添加到集合中
array.add(stu);
System.out.println("添加学生成功");
}
//查询所有学生
public static void findAll(ArrayList<Student> list) {
//查询前判断是否为kong
if (list.isEmpty()) {
System.out.println("没有学生");
return; //结束方法
}
System.out.println("学号\t\t姓名\t年龄\t地址");
//遍历list集合中每一个Student对象
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t\t" + stu.getAddress());
}
}
//删除学生
public static void deleteStudent(ArrayList<Student> list) {
//键盘入路删除的学生学号
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的学生学号");
String sid = sc.nextLine();
//遍历集合,查找学号为sid的学生在哪个索引位置
int index = -1; //-1表示没有找到元素
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
if (stu.getId().equals(sid)) {
//如果找到了要删除的元素,把索引赋值给index
index = i;
break;
}
}
//如果index==-1,说明学号不存在
if (index == -1) {
System.out.println("你输入的学号不存在");
} else {
list.remove(index);
System.out.println("删除学生成功");
}
}
//修改学生
private static void updateStudent(ArrayList<Student> list) {
//键盘录入删除的学生学号
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生学号:");
String sid = sc.nextLine();
//遍历集合,查找学号为sid的学生在那个索引位置
int index = -1; //-1表示没有找到元素=
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
if (stu.getId().equals(sid)) {
//如果找到了要删除的元素,把索引赋值给index
index = i;
break;
}
}
//如果index==-1,没有找到这个学号
if (index == -1) {
System.out.println("你输入的学号不存在");
} else {
//修改学信息,重新录入学生信息
System.out.println("请输入学生的学号:");
String nid = sc.nextLine();
System.out.println("请输入学生的姓名:");
String nname = sc.nextLine();
System.out.println("请输入学生的年龄:");
String nage = sc.nextLine();
System.out.println("请输入学生的地址:");
String naddress = sc.nextLine();
//重新创建一个学生对象
Student nstu = new Student(nid, nname, nage, naddress);
//用新的学生对象,替换老的对象
list.set(index, nstu);
System.out.println("修改学生成功");
}
}
}