4.12总结

一、String:字符串类型,可以定义字符串变量指向字符串对象。
String变量每次的修改其实都是产生并指向新的字符串对象,原来的字符串对象是没有改变的,所以称为不可变字符串。

1.String创建对象的两种方式。
方式一: String = "传智教育";
方式二: public String() 通过String类的构造器创建对象。

2.String常见题

字符串内容比较,推荐使用String类提供的“equals”比较,只关心内容一样即可
代码如下
package string;

import java.util.Scanner;

public class StringDemo {
    public static void main(String[] args) {
        //1.正确的登录名称和密码
        String okName = "破落天堂";
        String okPsaaword = "123456";

        //2.请您输入登录名称和密码
        Scanner sc = new Scanner(System.in);
        System.out.println("登录名称:");
        String name = sc.next();
        System.out.println("登陆密码:");
        String Password = sc.next();

        //3.判断用户输入的和正确的内容是否相等

        if (okName.equals(name) && okPsaaword.equals(Password)){
            System.out.println("登陆成功");
        }else {
            System.out.println("登陆失败,用户名或者密码错误!");
        }

        //4.忽略大小写比较内容的API,一般用于比较验证码。

        String sysCode = "Abc12";
        String Code1 = "aBC12";

        System.out.println(sysCode.equals(Code1));
        System.out.println(sysCode.equalsIgnoreCase(Code1));
    }
}

3.String案例:验证码,登录,隐私号码

代码如下:

package string;

//使用String完成随机生成5位的验证码

import java.util.Random;

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

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

        //3.输出字符串
        System.out.println(code);
    }
}

package string;

import java.util.Scanner;

public class String2 {
    public static void main(String[] args) {
        //1.定义正确的登录名称和密码
        String okLoginName = "admin";
        String okPassword = "123456";

        //2.定义一个循环,循环三次,让用户登录
        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();

            //3.判断登录是否成功
            if (okLoginName.equals(loginName)){
                //4.判断密码是否正确
                if (okPassword.equals(password)){
                    System.out.println("登陆成功!");
                    break;
                }else {
                    System.out.println("密码错误!您还剩余" + (3 - i) + "次机会登录!");
                }
            }else {
                System.out.println("登录名称错误!您还剩余" + (3 - i) + "次机会登录!");
            }

        }
    }
}

package string;

//手机号码屏蔽  181****3400

import java.util.Scanner;

public class String3 {
    public static void main(String[] args) {
        //1.键盘录入手机号码
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入手机号码:");
        String tel = sc.next();

        //2.截取号码前三位,后四位
        String before = tel.substring(0,3);//0 1 2
        String after = tel.substring(7);//7开始到手机号码末尾

        String s = before + "****" + after;
        System.out.println(s);
    }
}

二、Arraylist遍历删除元素值

代码如下

package arraylist;

//目标:学习遍历并删除元素的正确方案

import java.util.ArrayList;

public class ArrayListDemo1 {
    public static void main(String[] args) {
        //1.创建一个Arraylist集合存储一个班级学生的成绩
        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);

        //2.把低于80分的成绩从集合中删掉

        /**
         * 第一次出现BUG,数列中数字会向前移,导致当前移动的数字跳位,失去判断条件
         *
         * 方案一: 添加 i--;
         * 方案二: for (int i = scores.size() - 1; i >= 0 ; i--)从后往前遍历,不会浪费资源。
         */
        for (int i = 0; i < scores.size(); i++) {
            int score = scores.get(i);
            if (score < 80){
                //分数删除
                scores.remove(i);
                i--;//删除成功后,i退一步,保证回到这个位置,不会跳过数据
            }
        }
        System.out.println(scores);
    }
}

package arraylist;

import java.util.ArrayList;

/**
 * 案例:集合存储自定义元素并遍历。
 * 需求:定义电影类(名称,分值,演员),创建三个电影对象,存入集合并遍历。
 * 《肖申克的救赎》,9.7,罗宾斯
 * 《霸王别姬》,9.6,张国荣,张丰毅
 * 《阿甘正传》,9.5,汤姆·汉克斯
 */

public class ArrayListDemo2 {
    public static void main(String[] args) {
        //目标:理解Arraylist集合存储自定义类型的对象。
        //1.定义电影类
        //2.创建三个电影对象
        Movie m1 = new Movie("《肖申克的救赎》",9.7,"罗宾斯");
        Movie m2 = new Movie("《霸王别姬》",9.6,"张国荣,张丰毅");
        Movie m3 = new Movie("《阿甘正传》",9.5,"汤姆·汉克斯");
        //3.创建一个电影类型的Arraylist集合,存储散步电影。
        ArrayList<Movie> movies = new ArrayList<>();
        movies.add(m1);
        movies.add(m2);
        movies.add(m3);
        System.out.println(movies);//生成三部电影对象的地址

        //4.遍历电影类型中的每个电影对象,访问信息即可
        for (int i = 0; i < movies.size(); i++) {
            //i 0 1 2
            Movie m = movies.get(i);
            System.out.println("电影名称" + m.getName());
            System.out.println("电影评分" + m.getScore());
            System.out.println("电影演员" + m.getActor());
        }
    }
}

package arraylist;

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

posted @   奉禾  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示
主题色彩