栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础复习——DAY3 (String字符串;StringBuilder;集合;“学生信息管理系统”)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础复习——DAY3 (String字符串;StringBuilder;集合;“学生信息管理系统”)

java基础复习day3

API文档1.String字符串

1.1字符串定义的三种方式1.2字符串的特点1.3字符串比较

案例:登录系统 1.4字符串遍历

字符串反转 2.StringBuilder

2.1概述2.2构造方法,添加反转等

2.2.1构造方法2.2.2添加和反转 2.3StringBuilder和String的互相转换 三、集合基础

1.集合

1.1概念1.2ArrayList构造方法和添加方法1.3ArrayList集合常用的方法 案例:学生管理系统

API文档

API学习文档,java学习的字典。
(在线API)

    Scanner String的特殊
Scanner sc = new Scanner(System.in);
System.out.print("input a string:");
String line = sc.nextLine();

ctrl+alt+v 自动生成string line

1.String字符串 1.1字符串定义的三种方式

三种方式:char[] , byte[] , “…”

        char[] arr = {'w','e','n'};
        String s1 = new String(arr);
        System.out.println(s1);//wen
        byte[] arr = {65,66,67};
        String s1 = new String(arr);
        System.out.println(s1);//ABC
        String s1 = "wentiansheng";
        System.out.println(s1);//wentiansheng
1.2字符串的特点

地址不同

        char[] arr = {'a','b','c'};
        String s1 = new String(arr);
        String s2 = new String(arr);

上图代码,内容相同,但是new出的s1,s2地址不同

用string = “…”方式定义的字符串

	String s3 = "wen";
	String s4 = "wen";

针对第一行代码,JVM会建立一个String对象放在字符串池中,并且给s3
参考,而s4也是参考的这个池子, 说明本质上是同一个对象。

1.3字符串比较

用==比较的含义

基本类型:比较的是数值值是否相同引用类型:比较的是地址值是否相同

而字符串是对象,比较的是内容是否相同,用方法来实现:equals()

        System.out.println(s1.equals(s2));//true
案例:登录系统
package wts;

import java.util.Scanner;

public class helloworld {
    public static void main(String[] args) {
        String usrname = "wentiansheng";
        String password = "123456";

        Scanner sc = new Scanner(System.in);


        int i;
        for (i = 0; i < 3; i++) {
            //循环输入
            System.out.print("输入用户名:");
            String s1 = sc.nextLine();
            System.out.print("输入密码:");
            String s2 = sc.nextLine();
            //判断
            if (usrname.equals(s1) && password.equals(s2)) {
                System.out.println("登录成功!");
                break;
            } else {
                System.out.println("登录失败," + "你还有" + (2 - i) + "次机会!");
            }
        }
    }
}

1.4字符串遍历

.length()和.charAt(i)
长度和检索字符

		Scanner sc = new Scanner(System.in);
        System.out.print("输入字符串:");
        String s1 = sc.nextLine();
        int i;
        for (i = 0; i < s1.length(); i++) {
            System.out.println(s1.charAt(i));
        }
        //abcd
        //a
        //b
        //c
        //d
字符串反转
package wts;

import java.util.Scanner;

public class helloworld {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入字符串:");
        String s = sc.nextLine();
        String ss = reverse(s);
        System.out.println(ss);
    }
//返回值方法
    public static String reverse(String s) {
        String ss = "";//空字符串放倒叙
        for (int i = s.length() - 1; i >= 0; i--) {
            ss += s.charAt(i);//字符串也可以加
        }
        return ss;
    }
}

2.StringBuilder 2.1概述
string s1 = "hello";
s1 += "world";//最终输出helloworld


每次拼接,浪费空间。

StringBuilder 是一种可变的字符串类,可以看作容器(里面的对象可变)String内容不可变 2.2构造方法,添加反转等 2.2.1构造方法

public StringBuilder() 创建一个空白的可变字符串对象,不含内容public StringBuilder(String str) 根据字符串内容,创建可变字符串对象 2.2.2添加和反转

public StringBuilder() append(任意类型) 添加数据,返回本身

public StringBuilder() reserve() 返回相反的字符串序列

package wts;

import java.util.Scanner;

public class helloworld {
    public static void main(String[] args) {
        StringBuilder sc = new StringBuilder();
        StringBuilder s1 = sc.append("hello");
        s1 = sc.append(" world");
        System.out.println(s1);//hello world
        s1 = sc.append(" !").append(" wen").append(" tian").append(" sheng");
        System.out.println(s1);//hello world ! wen tian sheng
        //反转
        s1.reverse();
        System.out.println(s1);//gnehs nait new ! dlrow olleh
    }
}

2.3StringBuilder和String的互相转换

.toString()

		StringBuilder sc = new StringBuilder();
        sc.append("wentiansheng ");
        String s = sc.toString();
        System.out.println(s);//wentiansheng

StringBuilder构造转换
作用:有个案例,字符串拼接的案例,string耗费空间,很浪费;用stringbuilder提升效率。

		String s = "hello";
        StringBuilder sc = new StringBuilder(s);
        System.out.println(sc);

案例

package wts;

import java.util.Scanner;

public class helloworld {
    public static void main(String[] args) {
        //创建对象
        Scanner sc = new Scanner(System.in);
        //输入 123456
        System.out.print("input:");
        String s = sc.nextLine();
        //调用方法
        s = myreserve(s);
        //输出 654321
        System.out.println(s);

    }

    public static String myreserve(String s) {
        
        return new StringBuilder(s).reverse().toString();
    }
}

三、集合基础 1.集合 1.1概念

ArrayList

可调整大小的数组实现是一种特殊的数据类型,泛式

运用范例 ArrayList

1.2ArrayList构造方法和添加方法

public ArrayList() 创建空的集合对象

ArrayList array = new ArrayList<>();
//添加空集合
System.out.println("array:" + array);//array:[]

public boolean add(E e) 将指定元素增加到集合末尾

//末尾添加
array.add("wen");
array.add("tian");
array.add("sheng");
System.out.println("array:" + array);//array:[wen, tian, sheng]

public void add(int index,E element) 指定位置插入指定元素(也存在越界报错!)

//指定位置添加
array.add(1, "666");
System.out.println("array:" + array);//array:[wen, 666, tian, sheng]
1.3ArrayList集合常用的方法

public boolean remove(objec o)删除指定元素,返回删除是否成功

package wts;

import java.util.ArrayList;

public class helloworld {
    public static void main(String[] args) {
        ArrayList array = new ArrayList<>();
        array.add("wen");
        array.add("tian");
        array.add("sheng");

        //删除指定的元素,返回是否成功
        boolean flag = array.remove("wen");
        System.out.println(flag);//true
        System.out.println("array:" + array);//array:[tian, sheng]
    }
}

public E remove(int index)删除指定索引的元素,返回被删除的元素

package wts;

import java.util.ArrayList;

public class helloworld {
    public static void main(String[] args) {
        ArrayList array = new ArrayList<>();
        array.add("wen");
        array.add("tian");
        array.add("sheng");

        //删除指定的索引元素,返回元素
        System.out.println(array.remove(0));
        System.out.println("array:" + array);
        //wen
        //array:[tian, sheng]
    }
}

public E set(int index,E element)修改指定索引的元素,返回被修改的元素

package wts;

import java.util.ArrayList;

public class helloworld {
    public static void main(String[] args) {
        ArrayList array = new ArrayList<>();
        array.add("wen");
        array.add("tian");
        array.add("sheng");

        //修改指定的索引元素,返回元素
        System.out.println(array.set(0,"gogogo"));
        System.out.println("array:" + array);
        //wen
        //array:[tian, sheng]
    }
}

public E get(int index)返回指定索引的元素

package wts;

import java.util.ArrayList;

public class helloworld {
    public static void main(String[] args) {
        ArrayList array = new ArrayList<>();
        array.add("wen");
        array.add("tian");
        array.add("sheng");

        //返回指定索引元素
        System.out.println(array.get(0));
        System.out.println("array:" + array);
        //wen
        //array:[wen,tian, sheng]
    }
}

public int size()返回集合元素个数

package wts;

import java.util.ArrayList;

public class helloworld {
    public static void main(String[] args) {
        ArrayList array = new ArrayList<>();
        array.add("wen");
        array.add("tian");
        array.add("sheng");

        //返回指定索引元素
        System.out.println(array.size());
        System.out.println("array:" + array);
        //3
        //array:[tian, sheng]
    }
}

小结:存在索引,都有越界报错

案例:学生管理系统
package student;


public class Student {
    //学号
    private String sid;
    private String name;
    private String age;
    private String address;

    public Student() {
    }

    public Student(String sid, String name, String age, String address) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public String getSid() {
        return sid;
    }

    public String getName() {
        return name;
    }

    public String getAge() {
        return age;
    }

    public String getAddress() {
        return address;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

package student;


import java.util.ArrayList;
import java.util.Scanner;

public class StudentDemo {
    //菜单
    public static void main(String[] args) {

        ArrayList array = new ArrayList<>();

        while (true) {
            //创建集合,储存学生信息
            //界面
            System.out.println("********欢迎来到学生管理系统********");
            System.out.println("1 添加学生");
            System.out.println("2 删除学生");
            System.out.println("3 修改学生");
            System.out.println("4 查看学生");
            System.out.println("5 退出");

            //键盘录入菜单
            Scanner sc = new Scanner(System.in);
            System.out.print("输入(1-5):");
            String choice = sc.nextLine();

            //switch分支
            switch (choice) {
                case "1":
                    //System.out.println("添加学生");
                    addStudent(array);
                    break;
                case "2":
                    //System.out.println("删除学生");
                    deleteStudent(array);
                    break;
                case "3":
                    //System.out.println("修改学生");
                    updateStudent(array);
                    break;
                case "4":
                    //System.out.println("查看学生");
                    findAllStudent(array);
                    break;
                case "5":
                    System.out.println("学习使用");
                    //break;
                    System.exit(0);//JVM(java虚拟机退出!)
                default:
                    System.out.println("输入数据有误!重新输入");
                    break;
            }


        }

    }

    //1 添加学生
    public static void addStudent(ArrayList array) {
        //提示,录入信息
        Scanner sc = new Scanner(System.in);

        System.out.print("学生学号:");
        String sid = sc.nextLine();
        System.out.print("学生姓名:");
        String name = sc.nextLine();
        System.out.print("学生年龄:");
        String age = sc.nextLine();
        System.out.print("学生住址:");
        String address = sc.nextLine();

        //创建学生对象
        Student s = new Student();
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

        //把学生类添加到集合中去
        array.add(s);
        //提示添加成功
        System.out.println("添加成功!");

    }

    //2 删除学生
    public static void deleteStudent(ArrayList array) {
        //键盘录入要删除的学生学号
        Scanner sc = new Scanner(System.in);

        System.out.println("输入要删除学生的学号:");
        String sid = sc.nextLine();

        int index = -1;
        //遍历集合,删除目标
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            if (s.getSid().equals(sid)) {
                array.remove(i);
                index = i;
                break;
            }
        }
        if (index == -1) {
            System.out.println("找不到信息!重新输入!");
        } else {
            System.out.println("删除成功!");
        }

    }

    //3 修改学生
    public static void updateStudent(ArrayList array) {
        //键盘录入要修改学生的学号
        Scanner sc = new Scanner(System.in);

        System.out.print("输入要修改的学生学号:");
        String sid = sc.nextLine();


        int index = -1;
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            if (s.getSid().equals(sid)) {
                index = i;

                //键盘输入修改的内容
                System.out.print("输入要修改学号:");
                String num = sc.nextLine();
                System.out.print("输入要修改姓名:");
                String name = sc.nextLine();
                System.out.print("输入要修改年龄:");
                String age = sc.nextLine();
                System.out.print("输入要修改地址:");
                String address = sc.nextLine();

                //创建学生对象
                Student stu = new Student();
                stu.setSid(num);
                stu.setName(name);
                stu.setAge(age);
                stu.setAddress(address);

                //修改集合
                array.set(i, stu);
                break;
            }
        }
        if (index == -1) {
            System.out.println("找不到学生信息!重新输入!");
        } else {
            System.out.println("修改成功!!");
        }
    }

    //4 查看学生
    public static void findAllStudent(ArrayList array) {
        //判断初始是否有信息
        if (array.size() == 0) {
            System.out.println("没有信息!请先添加学生!");
        } else {
            //显示表头
            System.out.println("学号tt姓名tt年龄tt住址t");
            for (int i = 0; i < array.size(); i++) {
                Student s = array.get(i);
                System.out.println(s.getSid() + "tt" + s.getName() + "tt" + s.getAge() + "tt" + s.getAddress());
            }
        }
    }
}

关于学生信息管理系统小结:

    创建Student类的时候,写好private后,快捷键alt + insert 直接出构造函数等集合元素是类
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755506.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号