自学Java第九天笔记-常用API(String和ArrayList)

目录

思维导图

API

1.String

(1)String概述

(2)String类创建对象的两种方式及原理(面试常考)​

(3)String类常见面试题

(4)String类常用API

(5)案例

2.ArrayList

(1)集合的特点

(2)ArrayList集合

(3)ArrayList对于泛型的支持​

(4)ArrayList常用API

 (5)Array List案例


思维导图

API

应用程序编程接口(application programming interface):Java写好的奇数(功能代码),咱们可以直接调用。

1.String

(1)String概述

(2)String类创建对象的两种方式及原理(面试常考)

例子:

原理:

1.

 2.

(3)String类常见面试题

(4)String类常用API

字符串内容比较,遍历,替换,截取,分割

(字符串的内容比较不适用于"=="号来比较)                               忽略大小写比较主要用于比较验证码。还有一些常见的API:

(5)案例

1.验证码

需求:随机产生一个5位的验证码,每位可能是数字,大写字母,小写字母

分析:1.定义一个String类型的变量存储a-z,A-Z,0-9之间的全部字符;

           2.循环五次,随机一个范围内的索引,获取对应字符连接起来即可

           3.输入验证码,判断是否正确,如果不正确重新输入。

import java.util.Scanner;
import java.util.Random;

public class Code{
	public static void main(String[] args){
		Random r = new Random();
		Scanner s = new Scanner(System.in);
		//创建随机字符
		char[] ch = new char[5];
		String stro = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
		boolean flag = true;
		while(flag){
			for (int i = 0;i < 5;i++ ) {
				int index = r.nextInt(stro.length());
				ch[i] = stro.charAt(index);
			}
			String code = new String(ch);
			System.out.println("验证码为"+code);
			//输入验证码
			System.out.print("请输入验证码:");
			String mycode = s.next();
			if (mycode.equalsIgnoreCase(code)) {
				System.out.println("输入正确!");
				flag = false;
			}else
		   		System.out.println("输入错误!请重新操作!");
   	 	}
	}
	
}

 运行结果:

2.用户登陆系统

需求:模拟用户登录功能,最多只给三次机会

分析:1.注册用户名和登录密码

           2.输入用户名和登录密码,判断是否正确(区分大小写.equals())

           3.用for循环来控制三次机会

import java.util.Scanner;

public class Users{
	public static void main(String[] args){
		//定义账号密码
		String name = "txdwxh123";
		String code = "h123456";
		//输入账号密码
		Scanner s = new Scanner(System.in);
		for (int i = 0;i < 3 ;i++ ) {
			System.out.println("请输入账号:");
			String myname = s.next();
			System.out.println("请输入密码:");
			String mycode = s.next();
			//判断是否一致(区分大小写)
			if (myname.equals(name)) {
				if(mycode.equals(code)){
					System.out.println("帐号密码正确!");
					break;
				}
				else{
					System.out.println("帐号密码不匹配!您还有"+ (3-(i+1)) +"次机会。");
					continue;
				}
			}else{
				System.out.println("不存在该账号!您还有"+ (3-(i+1))  +"次机会。");
				continue;
			}
		}
	}
}

 运行结果:

之前做过类似的哈哈,用API果然更方便。

3.手机号码屏蔽

需求:以字符串的形式从键盘接受一个手机号,将中间四位数屏蔽,最终效果为:

import java.util.Scanner;

public class Tele{
	public static void main(String[] args){
		Scanner myscanner = new Scanner(System.in);
		System.out.println("请输入手机号码:");
		String tele = myscanner.next();
		String codeTele = tele.replace(tele.substring(3,7),"****");
		System.out.println("加密后的手机号码为:\n" + codeTele);
	}
}

 运行结果:

3.ArrayList

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

(1)集合的特点

(2)ArrayList集合

例子:

(3)ArrayList对于泛型的支持

(4)ArrayList常用API

 长度:数组用arr.length;String类型用s1.length();集合类型用al.size()。

例子:

 (5)Array List案例

1.遍历并删除元素值

import java.util.ArrayList;
public class ArrayList1{
	public static void main(String[] args){
		ArrayList<Integer> scoreList = new ArrayList<>();
		scoreList.add(98);
		scoreList.add(77);
		scoreList.add(66);
		scoreList.add(89);
		scoreList.add(79);
		scoreList.add(50);
		scoreList.add(100);
		System.out.println(scoreList);
//完美的方案1
		for (int i = 0;i < scoreList.size() ; i++) {
			if(scoreList.get(i) < 80){
				scoreList.remove(i);
				i--;  
			}
		}
		System.out.println(scoreList);
//完美的方案2
		for (int i = scoreList.size()-1;i >=0  ; i--) {
			if(scoreList.get(i) < 80){
				scoreList.remove(i);
			}
		}
		System.out.println(scoreList);
	}
}

运行结果:

2.输出电影信息

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

    public Movies() {
    }

    public Movies(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;
    }
}
package Movie;
import java.util.ArrayList;

public class MovieList {
    public static void main(String[] args) {
        Movies m1 = new Movies("战狼",5,"吴京");
        Movies m2 = new Movies("小时代",2,"杨幂");
        Movies m3 = new Movies("少年的你",4.5,"周冬雨");

        ArrayList<Movies> movieList = new ArrayList<>();
        movieList.add(m1);
        movieList.add(m2);
        movieList.add(m3);

        for (int i = 0; i <movieList.size() ; i++) {
            Movies m = movieList.get(i);
            System.out.println("电影名称:"+m.getName());
            System.out.println("电影评分:"+m.getScore());
            System.out.println("电影主演:"+m.getActor()+"\n");
        }

    }



}

运行结果:

运行机制:

 3.学生信息系统的数据搜索

package students;

public class Student {
    private String id;
    private String name;
    private int age;
    private String classes;

    public Student() {
    }

    public Student(String id, String name, int age, String classes) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.classes = classes;
    }

    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 int getAge() {
        return age;
    }

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

    public String getClasses() {
        return classes;
    }

    public void setClasses(String classes) {
        this.classes = classes;
    }
}
import java.util.ArrayList;
import java.util.Scanner;

public class StudentList {
    public static void main(String[] args) {
        Student s1 = new Student("20180302","叶孤城",23,"护理一班");
        Student s2 = new Student("20180303","东方不败",23,"护理二班");
        Student s3 = new Student("20180304","西门吹雪",23,"中医学四班");
        Student s4 = new Student("20180305","梅超风",23,"神经科二班");

        ArrayList<Student> studentList = new ArrayList<>();
        studentList.add(s1);
        studentList.add(s2);
        studentList.add(s3);
        studentList.add(s4);
        System.out.println("学号\t\t\t姓名\t\t\t年龄\t\t\t班级");
        for (int i = 0; i < studentList.size(); i++) {
            Student s = studentList.get(i);
            System.out.print(s.getId()+"\t");
            System.out.print(s.getName()+"\t\t");
            System.out.print(s.getAge()+"\t\t\t");
            System.out.println(s.getClasses());
        }


        Student result = Search(studentList);
    }
    public static Student Search(ArrayList studentList) {
        Scanner myscanner = new Scanner(System.in);
        boolean flag = true;
        while (flag) {
            System.out.println("请输入你要查找的学生学号:");
            String idinput = myscanner.next();
            System.out.println("你要查找的学生信息为:");
            System.out.println("学号\t\t\t姓名\t\t\t年龄\t\t\t班级");
            for (int i = 0; i < studentList.size(); i++) {
                Student s = (Student) studentList.get(i);
                if (idinput.equals(s.getId())) {
                    System.out.print(s.getId()+"\t");
                    System.out.print(s.getName()+"\t\t");
                    System.out.print(s.getAge()+"\t\t\t");
                    System.out.println(s.getClasses());
                    flag = false;
                    return s;
                }
            }
            System.out.println("没有你要查找的元素!");
            flag = true;
        }
        return null;
    }
}

运行结果:

这一题写完代码之后再看网课,感觉老师写的有bug,这也是我最开始犯的错误——查找完成之后死循环没有结束,继续让你输入学号。正确做法应该是定义Boolean型的flag变量放在while判断位置,如果查找到学生信息,令flag = false;退出循环。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值