13. 常用API(String、ArrayList)

String

String类概述

  • java.lang.String类代表字符串,String类定义的变量可以用于指向字符串对象,然后操作该字符串。
  • Java程序中的所有字符串文字都为String类的对象。

String类的特点详解

String类被称为不可变字符串类型,它的对象在创建后不能被更改

String类创建对象的2种方式

方式一(推荐):直接使用 “” 定义

String name = "Pan";

方式二:通过String类的构造器创建对象

        String s1 = new String(); // s1 = ""
        System.out.println(s1);

        String s2 = new String("Pan");
        System.out.println(s2);

        char[] chars = {'P' , 'a' , 'n'};
        String s3 = new String(chars);
        System.out.println(s3);

        byte[] bytes = {97,98,99,67,65};
        String s4 = new String(bytes);
        System.out.println(s4);

 

String类常见面试题

String类常用API

字符串内容比较

       String okName = "hehe";
        String okPassword = "123456";
        
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("输入用户名");
            String name = sc.next();
            System.out.println("输入密码");
            String password = sc.next();

            if (okName.equals(name) && okPassword.equals(password)) {
                System.out.println("登陆成功");
            }
            else {
                System.out.println("输入内容有误,重新输入");
            }
        }

遍历、替换、截取、分割操作 

//1
        String name = "我爱你Love";
        System.out.println(name.length());

        //2
        System.out.println(name.charAt(1));

        //3
        System.out.println("----------遍历字符串中每个字符----------");
        for (int i = 0; i < name.length(); i++) {
            char ch = name.charAt(i);
            System.out.println(ch);
        }
        System.out.println("------------------------------------");

        //4
        char[] chars = name.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            char ch = chars[i];
            System.out.println(ch);
        }

        //5
        String name2 = "java牛逼";
        String okname2 = name2.substring(0,4); //包前不包后 java
        System.out.println(okname2);
        String rs2 = name2.substring(4); //从4开始到最后
        System.out.println(rs2);

        //6
        String name3 = "Java是最牛逼的编程语言";
        String rs3 = name3.replace("牛逼","厉害");
        System.out.println(rs3);

        //7
        System.out.println(name3.contains("Java"));

        //8
        System.out.println(name3.startsWith("Java"));

        //9
        String name4 = "王宝强,贾乃亮,陈羽凡";
        String[] names = name4.split(",");
        for (int i = 0; i < names.length; i++) {
            System.out.println("选择了:" + names[i]);
        }

 String案例

String类开发验证码功能

        //定义可能出现的字符信息(大小写字母、数字)
        String datas = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";

        //循环5次,每次生成一个随机的索引,提取对应的字符连接
        String code = "";
        Random r = new Random();
        for (int i = 0; i < 5; i++) {
            //随机一个索引
            int index = r.nextInt(datas.length());
            char c = datas.charAt(index);
            code += c;
        }

        //输出字符串变量
        System.out.println(code);

模拟用户登陆功能

//定义默认账号和密码
        String okLoginName = "admin";
        String okPassword = "admin";

        //定义一个循环,循环三次用户登陆
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 3; i++) {
            System.out.println("输入账号");
            String loginName = sc.next();
            System.out.println("输入密码");
            String password = sc.next();

            //判断登陆是否成功
            if (okLoginName.equals(loginName)){
                if (okPassword.equals(password)){
                    System.out.println("登陆成功");
                    break;
                }else {
                    System.out.println("密码输入错误,请重新输入!");
                    System.out.println("您还剩余" + (2 - i) + "次机会");
                    System.out.println();
                }
            }else {
                System.out.println("用户名不存在,请重新输入");
                System.out.println("您还剩余" + (2 - i) + "次机会");
                System.out.println();
            }
        }

手机号码的屏蔽

        //录入手机号码
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入手机号码: ");
        String phoneNumber = sc.next();

        //截取号码前三位和后四位
        String before = phoneNumber.substring(0,3); //0 1 2
        String after = phoneNumber.substring(7);

        System.out.println(before + "****" + after);

 ArrayList

集合概述

集合与数组类似,是一种容器,用于装数据。

ArrayList集合快速入门 

ArrayList集合

ArrayList是集合中的一种,它支持索引。

ArrayList集合对象获取

ArrayList集合添加元素的方法

        //创建ArrayList集合的对象
        ArrayList list = new ArrayList();

        //添加数据
        list.add("Java");
        list.add("MySQL");
        list.add(23);
        list.add(23.8);
        list.add(false);
        System.out.println(list.add('中'));//一定成功

        System.out.println(list);

        //给指定索引位置插入元素
        list.add(1, "哈哈");
        System.out.println(list);

ArrayList对于泛型的支持(推荐写法)

        ArrayList<String> list = new ArrayList<>();
        list.add("Java");
//        list.add(23); X
//        list.add(23.5); X

        ArrayList<Integer> list2 = new ArrayList<>();
        list2.add(23);
//        list2.add("Java"); X

ArrayList常用API、遍历

        ArrayList<String> list = new ArrayList<>();
        list.add("Java");
        list.add("MySQL");
        list.add("HTML");

        //1
        System.out.println(list.get(0));

        //2
        System.out.println(list.size());

        //3
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        //4
        System.out.println(list); //未删之前
        System.out.println(list.remove(1)); //删除MySQL
        System.out.println(list); //删除之后

        //5
        System.out.println(list.remove("Java")); //只会删除一个
        System.out.println(list.remove("Java"));
        System.out.println(list);

        //6
        System.out.println(list.set(0, "Java"));
        System.out.println(list);

案例

遍历并删除元素

        ArrayList<Integer> scores = new ArrayList<>();
        scores.add(98);
        scores.add(77);
        scores.add(66);
        scores.add(89);
        scores.add(79);
        scores.add(50);
        scores.add(100);
        System.out.println(scores);
        // [98, 77, 66, 89, 79, 50, 100]

        //遍历集合中的每个元素
        for (int i = scores.size() - 1; i >= 0; i--) {
            int score = scores.get(i);
            if (score < 80){
                scores.remove(i);
            }
        }
            System.out.println(scores);

存储自定义类型

public class Movie {
    private String name;
    private double score;
    private String actor;

    public Movie() {
    }

    public Movie(String name, double score, String actor) {
        this.name = name;
        this.score = score;
        this.actor = actor;
    }

    public String getName() {
        return name;
    }

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

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getActor() {
        return actor;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }
}

 

public class cs {
    public static void main(String[] args) {
        //1. 定义一个Movie类
        //2. 定义一个集合,存储对象
        ArrayList<Movie> movies = new ArrayList<>();

        //3. 创建影片对象并封装数据,加入到集合中去
        movies.add(new Movie("《肖申克的救赎》",9.8,"罗宾斯"));
        movies.add(new Movie("《霸王别姬》",9.6,"张国荣,张丰毅"));
        movies.add(new Movie("《阿甘正传》",9.5,"汤姆·汉克斯"));

        //4. 遍历集合并展示
        for (int i = 0; i < movies.size(); i++) {
            Movie movie = movies.get(i);
            System.out.println("片名\t" + movie.getName());
            System.out.println("评分\t" + movie.getScore());
            System.out.println("主演\t" + movie.getActor());
            System.out.println();
        }
    }
}

 

元素搜索 

public class Students {
    private String studyId;
    private String name;
    private int age;
    private String className;

    public Students() {
    }

    public Students(String studyId, String name, int age, String className) {
        this.studyId = studyId;
        this.name = name;
        this.age = age;
        this.className = className;
    }

    public String getStudyId() {
        return studyId;
    }

    public void setStudyId(String studyId) {
        this.studyId = studyId;
    }

    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 String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }
}
public class cs {
    public static void main(String[] args) {
        //1. 定义学生类 ,后期便于创建对象并封装
        //2. 定义集合对象
        ArrayList<Students> students = new ArrayList<>();
        students.add(new Students("1","张三",23,"一班"));
        students.add(new Students("2","李四",24,"二班"));
        students.add(new Students("3","王五",25,"三班"));
        students.add(new Students("4","小明",26,"四班"));

        //3. 遍历集合中对象并展示
        for (int i = 0; i < students.size(); i++) {
            Students s = students.get(i);
            System.out.println("学号\t" + s.getStudyId());
            System.out.println("姓名\t" + s.getName());
            System.out.println("年龄\t" + s.getAge());
            System.out.println("班级\t" + s.getClassName());
            System.out.println();
        }

        //4.用户不断输入学号,搜索学生,并展示
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.println("输入查询学生的学号:");
            String id = sc.next();
            Students s = getStudentByStudyId(students,id);
            //判断学号是否存在
            if(s == null){
                System.out.println("查无此人");
            }else {
                System.out.println("学号\t" + s.getStudyId());
                System.out.println("姓名\t" + s.getName());
                System.out.println("年龄\t" + s.getAge());
                System.out.println("班级\t" + s.getClassName());
                System.out.println();
            }
        }
    }

    //根据学号找学生,并返回
    public static Students getStudentByStudyId(ArrayList<Students> students, String studyId){
        for (int i = 0; i < students.size(); i++) {
            Students s = students.get(i);
            if(studyId.equals(s.getStudyId())){
                return s;
            }
        }
        return null;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值