String和ArrayList

String和ArrayList

package Week2day3;

import java.util.ArrayList;

public class ArrayList1 {
    //泛型只支持引用数据类型,不支持基本数据类型
    //Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
    public static void main(String[] args) {

        //集合:List(有序) Set(无序) Map
        //ArrayList<String>操作的数据类型只能是String引用类型
        ArrayList<String> stringList = new ArrayList<>();
        stringList.add("河南");
        stringList.add("河南");//可以重复
        stringList.add("师范");
        stringList.add("大学");

        //在指定索引位置添加元素
        stringList.add(0, "我们在");
        System.out.println("索引1所在的元素:" + stringList.get(1));//索引1所在的元素:河南
        System.out.println("集合的大小:" + stringList.size());//集合的大小:5
        for (String s : stringList) {
            System.out.print(s);
        }

        //删除元素
        //1.用内容删除,返回值是boolean类型
        System.out.println("删除元素是否成功:" + stringList.remove("大学"));//删除元素是否成功:true
        System.out.println(stringList); //[我们在, 河南, 河南, 师范]

        //2.用索引删除,返回值是删除的元素
        System.out.println(stringList.remove(0));
        System.out.println(stringList);

        //修改元素
        stringList.set(0,"哈哈");
        System.out.println(stringList);//[哈哈, 河南, 师范]

        //引入Object父类就可以传入任意类型的数据
        ArrayList<Object> list = new ArrayList<>();
        list.add(1);
        list.add("哈哈");
        list.add(false);
        list.add(1.1);
        System.out.println(list);
    }
}

遍历删除集合值

package Week2day3;

import java.util.ArrayList;

public class DeleteCore {
    public static void main(String[] args) {
        //遍历删除小于80的数据
        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循环删除,如果要用就要倒序删除,如果正序的话,集合所以的下标值会改变
//集合所以的下标值会改变
        //错误写法
/*        for (Integer o : List) {
            if (o < 80) {
                List.remove(o);//大小改变
            }
        }*/

/*        for (int i = List.size() - 1; i >= 0; i--) {
            if (List.get(i) < 80) {
                List.remove(i);
            }
        }
        System.out.println(List);*/

        //如果是正序的话,需要再定义一个索引集合存储需要删除的值,再循环遍历索引集合然后依次删除
        ArrayList<Integer> index = new ArrayList<>();
        for (int x = 0; x < List.size(); x++) {
            if (List.get(x) < 80) {
                index.add(List.get(x));
            }
        }
        for (int i = 0; i < index.size(); i++) {
            List.remove(index.get(i));
        }
        for (Integer integer : List) {
            System.out.println(integer);
        }
    }
}

在这里插入图片描述

电话号码屏蔽

package Week2day3;

import java.util.Scanner;

//电话号码屏蔽
public class PhoneNumberShield {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要屏蔽的电话号码:");
        String phoneNumber = scanner.next();
        if (phoneNumber.length() == 11) {
            System.out.println(phoneNumber.substring(0, 3) + "****" + phoneNumber.substring(phoneNumber.length() - 4));
        } else {
            System.out.println("你输入的电话号码有误");
        }
    }
}

统计输入字符串中数字和字母个数分别有多少个

package Week2day3;

import java.util.Scanner;

public class Practice2 {
    /*请编写程序,由键盘录入一个字符串,统计字符串中英文字母和数字分别有多少个。
    比如:Hello12345World中字母:10个,数字:5个。*/
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要统计的字符串:");
        String string = scanner.next();
        int charCount = 0;
        int numCount = 0;
        String s1 = string.toUpperCase();
        for (int i = 0; i < string.length(); i++) {
            if (s1.charAt(i) >= 'A' && s1.charAt(i) <= 'Z') {
                charCount++;
            } else {
                numCount++;
            }
        }
        System.out.println("英文字母有:" + charCount + "个,数字有" + numCount + "个");
    }
}

char和String的区别:
1.char表示字符,定义时用单引号,只能存储一个字符,如char c=’x’;
而String表示字符串,定义时用双引号,可以存储一个或多个字符,如String name=”tom”;

2.char是基本数据类型,而String 是一个类,具有面向对象的特征,可以调用方法,如name.length()获取字符串的长度。

package Week2day3;

import static java.lang.Character.TYPE;
import static java.lang.Character.getType;

public class StringMethod {
    public static void main(String[] args) {
        String str1 = "河南";
        str1 += "师范A";
        String str2 = "河南师范A";
        char str3 = '1';
        char str4 = '1';
        Integer a = 1;
        System.out.println(a.getClass());
        //如果是基本数据类型的比较可以用==,==比较的是地址,否则只能用方法equals或者equalsIgnoreCas
        System.out.println(str1 == str2);//false
        System.out.println(str3==str4);//true
        System.out.println(str1.equals(str2));//true
        //忽略大小写的比较
        System.out.println(str1.equalsIgnoreCase(str2));//true
        System.out.println(str3 == str4);//true


        String str5 = "小明,小红,小黑";
        System.out.println(str5.length());//8 返回字符串的长度

        //1.将当前字符串转换成字符数组返回
        char[] charArray = str5.toCharArray();
        System.out.println(charArray);//小明,小红,小黑
        //2.获取某个索引位置处的字符
        System.out.println(str5.charAt(2));//,

        //3.根据开始和结束索引进行截取,得到新的字符串(包前不包后)
        System.out.println(str5.substring(0, 5));//小明,小红

        //4.根据传入的规则切割字符串,得到新的字符串数组返回
        String[] split = str5.split(",");
        for (String s : split) {
            System.out.print(s);
        } //小明小红小黑

        //5.使用新值,将字符串中的旧值替换,得到新的字符串
        System.out.println(str5.replace(str5, "abcd"));//abcd

        //6.从传入的索引位置截取到字符串的末尾
        System.out.println(str5.substring(1));//明,小红,小黑

        //两个字符串都指向堆内存中的abc
        String str6 = "abc";
        String str7 = "a" + "b" + "c";
        System.out.println(str6 == str7);//true

        //str8和str9指向不同的数据
        String str8 = "abc";
        String str9 = "ab";
        String str10 = str9 + "c";
        System.out.println(str8 == str10);//false

        //数组定义后类型确定,长度固定 集合不固定
    }
}

在这里插入图片描述

指定内容输出随机验证码

package Week2day3;

//import java.util.Locale;
import java.util.Random;

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

        String str = "1234567890";
        ///ctrl shift y 小写字母转大写
        str += "abcdefghijklmnopqrstuvwxyz";
        str+="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String code ="";
        //System.out.println(str.length());//62
        Random random = new Random();
        for (int i = 0;i<5;i++){
            code += str.charAt(random.nextInt(62));
        }
        System.out.println(code);
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊佩萁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值