Java暑假复习3

 常用API(Application Programming Interface,应用程序编程接口):

  • Java写好的功能代码,可以直接调用。
  • Oracle也为Java提供相应的API文档。

String :

        1、代表字符串,String类定义的变量可以用于指向字符串对象,再操作该字符串。

        2、String变量每次的修改都是产生并指向新的字符串对象。原来的字符串对象都是没有改变的,所以称不可变字符串。

String类创建对象的两种方式:

        1、常见的("  ")创建;

        2、用构造器创建。

构造器说明
public String()创建一个空白字符串对象,不含有任何内容
public String(String original)根据传入的字符串内容,来创建字符串对象
public String(char[] chs)根据字符数组的内容,来创建字符串对象
public String(byte[] chs)根据字节数组的内容,来创建字符串对象

字符串对象的特点:

        双引号(" ")创建的字符串对象,在字符串常量池中存储同一个

        通过呢哇构造器创建的字符串对象,在堆内存中分开存储。

在字符串的比较中,“==”只适用于内存地址比较,而String类提供的“equals”方法,就可以进行字符串内容的比较,只要内容一样就相等。

演示:

package example1;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        /**
         * 字符串比较
         */
        String account = "lihua";
        String password = "123456";

//        用户输入两个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入账号:");
        String acc = sc.next();
        System.out.println("请输入密码:");
        String pas = sc.next();

//        分别用不同的方式进行判断
        if (acc == account && pas == password){
            System.out.println("输入正确!");
        }else {
            System.out.println("输入错误!");
        }

        if (acc.equals(account) && pas.equals(password)){
            System.out.println("输入正确!");
        }else {
            System.out.println("输入错误!");
        }
    }
}

结果:

equalsIgnoreCase()也是字符串比较的一个方法,它不会管字母的大小写,常用于验证码场景。

代码实现:

package example1;

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

public class Test2 {

    /**
     * 获取验证码方法
     */
    public static String code(){
        String dates = "zxcvbnmasdfghjklqwertyuiopZXCVBNMASDFGHJKLQWERTYUIOP1234567890";

        Random r = new Random();

        String Code = "";
        for (int i = 0; i < 5; i++) {
            int index = r.nextInt(dates.length());
            char c = dates.charAt(index);
            Code += c;
        }
        return Code;
    }

    public static void main(String[] args) {
        String verificationCode = code();
//        与验证码进行比较
        Scanner sc = new Scanner(System.in);
        System.out.print("您的验证码是:"+verificationCode+"\n请输入验证码:");
        String str = sc.next();
        if (str.equalsIgnoreCase(verificationCode)){
            System.out.println("验证成功!");
        }else {
            System.out.println("输入错误!");
        }

    }
}

 测试代码:

package example1;

public class Test3 {
    /**
     * 对String常用API的简单实现
     */
    public static void main(String[] args) {
        String str = "我是祖国的花朵flower";
//        返回字符串的长度
        System.out.println(str.length());
//        获取某个索引位置处的字符
        System.out.println(str.charAt(5));
//        将当前字符串转换成字符数组返回
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.print(chars[i]);
        }
        System.out.println("\n");
//        根据开始和结束索引进行截取,得到新的字符串
        System.out.println(str.substring(2 , 4));
//        从传入的索引处截取,截取到末尾,得到新的字符串
        System.out.println(str.substring(7));
//        使用新值,将字符串中的旧值替换,得到新的字符串
        System.out.println(str.replace("我", "wo"));
//        根据传入的规则切割字符串,得到字符串数组返回
        String str2 = "李白,杜甫,白居易";
        String[] strings = str2.split(",");
        for (int i = 0; i < strings.length; i++) {
            System.out.println(strings[i]);
        }
//        是否查找到字符串
        System.out.println(str.contains("祖国"));
        System.out.println(str.contains("祖安"));
//        以字符串开始
        System.out.println(str.startsWith("我是祖国的"));
        System.out.println(str.startsWith("是祖国的"));

    }
}

ArraList集合

集合是与数组类似,是一种容器,用于装数据的。ArraList只是集合中的一种,先复习一种。

与数组不同的是:没有固定的长度,类型可以变化。而且集合提供了非常对的功能,且好用,比之下,数组则显得非常单一。

ArraList用构造器创建对象:ArraList();

用add()方法添加数据,可以指定位置添加。

在集合的使用中,可以使用泛型统一元素类型。

关于ArraList<E>泛型的概述:就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型

注意:集合中只能存储引用数据类型,不支持基本数据类型。

 简单案例:

package example2;

import java.util.ArrayList;

public class Case1 {
    /**
     * 案例需求:
     * 某班成绩:98,77,66,89,79,50,100
     * 需把成绩低于80分以下的数据去掉
     */
    public static void main(String[] args) {
//        利用集合存储数据
        ArrayList<Integer> list = new ArrayList<>();
        list.add(98);
        list.add(77);
        list.add(66);
        list.add(89);
        list.add(79);
        list.add(50);
        list.add(100);

        for (int i = 0; i < list.size(); i++) {
            if (list.get(i) < 80){
                list.remove(i);
//              每删掉一个就将索引后退一格
                i--;
            }else {
                System.out.println(list.get(i));
            }
        }


    }
}


学习了ArrayList后,对电影案例进行修改。

package example3;

import java.util.ArrayList;

public class Test {
    /**
     * 用集合改进一下电影案例
     * 显现集合打印所有电源对象
     */
    public static void main(String[] args) {
//        创建三个电影对象
        Movie movie1 = new Movie("盗梦空间",9.4,"克里斯托弗·诺兰");
        Movie movie2 = new Movie("星际穿越",9.4,"克里斯托弗·诺兰");
        Movie movie3 = new Movie("黑客帝国",9.0,"莉莉·沃卓斯基/拉娜·沃卓斯基");

//        创建集合
        ArrayList<Movie> movies = new ArrayList<>();
        movies.add(movie1);
        movies.add(movie2);
        movies.add(movie3);

        for (int i = 0; i < movies.size(); i++) {
            Movie m = movies.get(i);
            System.out.println("电影名称:"+m.getName());
            System.out.println("电影评分:"+m.getScore());
            System.out.println("导演:"+m.getDirector());
            System.out.println("======================");
        }
    }
}

电影类未作改变。

利用目前阶段的知识,制作一个学生信息检索功能,大体如下:

package example4;

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

public class Case2 {
    public static void main(String[] args) {
//        1、创建学生类
//        2、创建集合储存学生对象,创建学生对象封装信息;
        ArrayList<Students> studentsArrayList = new ArrayList<>();
        studentsArrayList.add(new Students(202101,"李白","软件技术","2班"));
        studentsArrayList.add(new Students(202102,"王维","软件技术","2班"));
        studentsArrayList.add(new Students(202105,"杜甫","软件技术","2班"));
        studentsArrayList.add(new Students(202108,"白居易","软件技术","1班"));

//        3.遍历学生对象;
        System.out.println("学号\t\t姓名\t\t专业\t\t班级");
        for (int i = 0; i < studentsArrayList.size(); i++) {
            Students students = studentsArrayList.get(i);
            System.out.println(students.getID()+"\t"+students.getName()+"\t"+students.getSpecialized()
                    +"\t"+students.getClassName());
        }
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入您想搜索的学号:");
            int id = sc.nextInt();
            Students students = search(studentsArrayList,id);
            if (students == null){
                System.out.println("未找到相关学号信息!");
            }else {
                System.out.println(students.getID()+"\t"+students.getName()+"\t"+students.getSpecialized()
                        +"\t"+students.getClassName());
            }
        }
    }

    /**
     * 搜索功能,按学号搜索
     * @param students 储存对象的集合
     * @param id 学号
     */
    public static Students search(ArrayList<Students> students , int id){
        for (int i = 0; i < students.size(); i++) {
            Students students1 = students.get(i);
            if (students1.getID() == id){
                return students1;
            }
        }
        return null;
    }

}

那么java常用API的学习就结束了。

感谢“黑马程序员”提供的网络学习资源

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值