自学java第五天——常用API(String,ArraryList,字符串比较,集合添加元素功能及具体案例实践)

自学java第五天——常用API(String,ArraryList,字符串比较,集合添加元素功能及具体案例实践),第1张

API:应用程序编程接口

*java写好的技术(功能代码),可以直接调用。

*API文档(技术使用说明书)

(1)String的简单介绍

储存字符串,提供了很多 *** 作字符串的功能,可以直接使用.

java.lang.String="小黑";

String schoolName="qwe";

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

创建的两种方式:

package day5;

public class String1111 {
    public static void main(String[] args) {
        //(1)方法一
        String name="中国";
        System.out.println(name);
        
        //(2)构造器方法

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

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

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

        byte bytes[]={23,45,67,89};
        String s4 = new String(bytes);
        System.out.println(s4);
    }
}

代码结果:

 创建两种String方式的区别

*以" " 方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会在其中存储一份。

*通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中。

package day5;

public class String3 {
    public static void main(String[] args) {
        String s1="abc";
        String s2="abc";
        System.out.println(s1==s2);//结果为true


        char ch[]={'a','b','c'};
        String s3 = new String(ch);
        String s4 = new String(ch);
        System.out.println(s3==s4);//结果为false

    }
}

(2)String 类常用(API)功能-字符串内容比较

package day5;

import jdk.swing.interop.SwingInterOpUtils;

import java.util.Scanner;

public class String4 {
    public static void main(String[] args) {

        String okname = "qwe";
        String okpassword = "123";

        Scanner sc = new Scanner(System.in);
        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("输入错误");
        }
    }
}

输出结果

 忽略大小写比较字符串是否相等,用于比较验证码之类的业务。

package day5;

public class String5 {
    public static void main(String[] args) {
        //忽略大小写比较 API : 一般用于比较验证码
        String code = "ABC123";
        String code1 = "aBc123";
        System.out.println(code.equals(code1));
        System.out.println(code.equalsIgnoreCase(code1));

    }
}

 输出结果

*equal 用于比较字符串内容;==用于比较字符串地址(基本类型还是用==)

(3)String其他常用的API

 (4)String 类 开发验证功能

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

package day5;

import java.util.Random;

public class String6 {
    public static void main(String[] args) {
        //定义字符串可能出现的字符信息
        String datas="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";

        //循环五次,每次生成一个随机的索引,提取对应的字符连接起来即可
        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=code+c;

        }
        //直接输出字符串变量即可
        System.out.println(code);
    }
}

输出结果

模拟用户登录功能,最多只给3次机会

package day5;

import java.util.Scanner;

public class String7 {
    public static void main(String[] args) {
        // 定义正确用户名和密码
        String okname="123";
        String okpassword="123456";

        //循环三次,登录;
        Scanner sc=new Scanner(System.in);
        for (int i = 1; i <=3 ; i++) {
            System.out.println("输入用户名");
            String name= sc.next();
            System.out.println("输入密码");
            String password = sc.next();

            //判断是否相等;
            
            if(okname.equals(name)){
                if(okpassword.equals(password)){
                    System.out.println("登陆成功");
                    break;
                }else{
                    System.out.println("密码错误");
                }

            }
            else {
                System.out.println("登录名错误");
            }

        }

    }
}

输出结果

案例 手机号码屏蔽 将手机号码中间4位屏蔽 如:132****2345

package day5;

import java.util.Scanner;

public class String8 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的手机号码");
        String datas = sc.next();

        // 截取号码前三位 和后四位
        String before = datas.substring(0,3); //0 1 2
        String after = datas.substring(7);//从索引7开始截取到手机号码末尾
        System.out.println(before+"****"+after);

    }
}

运行结果

 二,ArraryList集合

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

与数组的区别:数组定义后,类型确定,长度确定,不适合进行增删改查。

而集合大小不固定,启动后可以动态变化,类型也可以选择不固定。所以集合适合做元素个数不确定,启动后可以动态变化,类型也可以选择不固定。

数组适合做数据个数和类型确定的场景;

而集合适合做数据个数不确定,且要进行增删改查的场景。

package day5;

import java.util.ArrayList;

public class array {
    public static void main(String[] args) {
        // 创建ArrayList的对象
        ArrayList list = new ArrayList();

        //添加数据
        list.add("java");
        System.out.println(list);

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

 运行结果

 泛型概述:统一ArraryList集合 *** 作的元素类型

可以在编译阶段约束集合对象只能 *** 作某种数据类型。

ArraryList:此集合只能 *** 作字符串类型的元素。

ArraryList:此集合只能 *** 作整数类型的元素。

package day5;

import java.util.ArrayList;

public class Arr {
    public static void main(String[] args) {
        ArrayList list = new ArrayList<>();
        list.add("Java");
        list.add("000");
        
    }
}

(2)ArraryList的常用API,遍历

package day5;

import java.util.ArrayList;

public class Arr {
    public static void main(String[] args) {
        ArrayList list = new ArrayList<>();
        list.add("Java");
        list.add("000");
        list.add("111");

        //获取某个索引位置处的元素值
        String e = list.get(1);
        System.out.println(e);

        //获取集合的大小(元素个数)
        System.out.println(list.size());

        //完成集合的遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        //根据索引删除某个元素值,并返回被删除的元素值
        System.out.println(list);
        String a = list.remove(1);
        System.out.println(a);
        System.out.println(list);

        //直接删除元素值,并返回true/false
        System.out.println(list.remove("111"));
        System.out.println(list);//若有相同元素,默认删除前面的元素;

        //修改某个索引的元素值;
        System.out.println(list.set(0, "kkk"));
        System.out.println(list);


    }
}

运行结果

(4)ArrayList的案例

需求:某班成绩为98,77,66,89,79,50,100;除去低于80分的成绩

注意事项:不能直接遍历删除,应该倒序删除或i--;具体看代码。

package day5;

import java.util.ArrayList;

public class ARRTEST {
    public static void main(String[] args) {
        //创建集合,存储成绩
        ArrayList 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);

        //筛选成绩
        for (int i = 0; i < scores.size(); i++) {
            int a = scores.get(i);
            if(a<80){
                //删除
                scores.remove(i);
                i--; //删除成功后,必须退一步,保证可以下次可以回到这个位置,也可以倒序的方法
            }

        }
        System.out.println(scores);
    }
}

运行结果:

 需求:某影院系统需要在后台存储上述三部电影,然后依次展示出来。

先定义类

package day5;

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;
    }
}

主程序

package day5;

import jdk.swing.interop.SwingInterOpUtils;

import java.util.ArrayList;

public class Arrtset2 {
    public static void main(String[] args) {
        //集合存储自定义类型的对象
        //1,先定义电影类
        //2,创建三个电影对象
        Movie m1 = new Movie("肖申克",9.7,"lbh");
        Movie m2 = new Movie("霸王别姬",9.8,"lbh");
        Movie m3 = new Movie("阿甘正传",9.7,"lbh");

        //创建电影类型 ArrayList 集合 存储三部电影对象
        ArrayList movies = new ArrayList<>();
        movies.add(m1);
        movies.add(m2);
        movies.add(m3);

        //遍历,访问信息
        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.getActor());
            System.out.println("--------------------");

        }
    }
}

输出结果

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/876802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存