【JAVADAY10-集合遍历、字符串常用方法的使用】

三种Date获取方法

第一代日期方法

package SysApp;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Date1 {
    public static void main(String[] args) throws ParseException {
        //常用日期方法
        //Date可以精确到毫秒
        //SimpleDateFormat:格式化日期,可以将日期转为文本,文本转为日期
        /*同一个字母,大写表示的范围更大
         * y:年
         * M:月
         * w:年份中的周
         * W:月份中的周
         * D:年中的天数
         * d:月份中的天数
         * F:月份中的星期
         * E;星期中的天数
         * H:一天中的小时数
         * */
        //第一代日期方法
        Date date=new Date();
        System.out.println("当前系统时间:"+date);
        //SimpleDateFormat用于格式化时间的一个类,创建好后
        //调用对象的format方法即可
        SimpleDateFormat   s1=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E");
        System.out.println(s1.format(date));
        //还可以把文本转为date类型
        //前提是你的这个字符串,必须样式和s1一样,不然会报错
        String s2="2021年09月11日 13时29分13秒 星期一";
        //此时会有异常,直接鼠标放上去添加一个就行了
        Date s3=s1.parse(s2);
        System.out.println(s3);
        //如果你想让文本转的日期是中国的格式
        System.out.println("转为中国格式:"+s1.format(s3));

    }
}

第二代日期方法

package SysApp;

import java.util.Calendar;

public class Date2 {
    public static void main(String[] args) {
        //第二代日期,用到了日期类Calendar
        //Calendar是一个抽象类并且构造器是private
        //通过getInstance方法获取Calendar的值,而getInstance是静态的,因此用类名。方法名
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.getTime());
        //该类把属性都放在了类里面
        System.out.println(Calendar.DAY_OF_MONTH);
        System.out.println(calendar.get(Calendar.YEAR));
        //获取月份要加1,因为月份是从0开始
        System.out.println(calendar.get(Calendar.MONTH)+1);
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
        //它没有提供格式化方法需要你自己组合
        System.out.println(calendar.get(Calendar.YEAR)+" 年 "+(calendar.get(Calendar.MONTH)+1)+" 月 "+calendar.get(Calendar.DAY_OF_MONTH)+" 日");
        //优点 可以自定义输出
        //想要是24小时的小时,用Calendar.HOUR_OF_DAY;
    }
}

第三代日期方法

package SysApp;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class Date3 {
    public static void main(String[] args) {
        //第三代日期
        //三种方法
        LocalDateTime time=LocalDateTime.now();
        LocalDate time1= LocalDate.now();
        LocalTime time2=LocalTime.now();
        System.out.println(time);
        System.out.println(time1);
        System.out.println(time2);
        System.out.println("自定义输出:"+time.getYear()+"年 "+time.getMonthValue()+"月 "+ time.getDayOfMonth()+"日 "
        +time.getHour()+"时 "+time.getMinute()+"分 "+time.getSecond()+"秒");
        //同样这个类还提供了格式日期类,直接调用静态方法 返回值类型是DateTimeFormatter
        //使用方法类似第一代
        DateTimeFormatter date=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒 E");
        System.out.println(date.format(time));
    }
}

system类

system.copy

package SysApp;

import java.util.Arrays;

public class Sysexmple {
    public static void main(String[] args) {
        //copy方法
        int arr[]={1,2,3,4,5,6,7,8};
        int p[] =new int [8];
        //第一个参数,源数组名
        //第二个参数,从原数组的哪个索引开始拷贝
        //第三个参数。目的数组名
        //第四个参数,拷贝的长度
        System.arraycopy(arr,0,p,0,arr.length);
        //循环遍历输出数组中的每个数字
        for (int i = 0; i < p.length; i++) {
            System.out.println(p[i]);
        }
        System.out.println("另外一种输出数组的方式:"+ Arrays.toString(p));
        while (true){
            System.out.println("你好");
            System.out.println("输出1970/1/1距离现在多少毫秒:"+System.currentTimeMillis());
            //0代表正常退出
            //在此代码后面不可添加任何代码,因为程序在此结束。
            System.exit(0);
        }

    }
}

2中大数类

package SysApp;

import java.math.BigDecimal;
import java.math.BigInteger;

public class BigIntgerAndBigdecimal {
    public static void main(String[] args) {
        //首先这是2个类
        BigInteger bigInteger = new BigInteger("123456789");
        BigInteger bigIntegerson = new BigInteger("123456789");

        BigDecimal bigDecimal = new BigDecimal("123456789.123456789");
        System.out.println(bigInteger);
        //加减乘除都必须使用对象的方法
        System.out.println("加法运算"+bigInteger.add(bigIntegerson));
        System.out.println("减法运算\t"+bigInteger.subtract(bigIntegerson)+"\t乘法运算\t"+bigInteger.multiply(bigIntegerson)
        +"\t除法运算\t"+bigInteger.divide(bigIntegerson));
    }
}

字符串指定位置翻转

package Day10;

import java.util.Arrays;

public class Hwork01 {
    public static void main(String[] args) {
        //先写一个交换全部位置的
        String a = "abcdef";
        System.out.println("交换前:" + a);
        revers(a, 0, 5).toString();
        System.out.println("交换后:" + revers(a, 1, 5).toString());
    }

    //反转字符串
    //str是要反转的字符串
    //start是起始位置
    //end是结束位置
    public static String revers(String str, int start, int end) {
        //思路 取出每个字符,放在数组中
        //String 类的 split() 方法可以按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。
        // 该方法主要有如下两种重载形式:str.split(String sign,int limit)
        //用一个中间变量交换首位位置就行了
        char[] chars = str.toCharArray();
        for (int i = start; i <= end; i++,end--) {
                char temp = chars[i];
                chars[i] = chars[end];
                chars[end] = temp;
        }
        //String(char[])是String类中的构造器,作用是复制数组中的值到字符串中
        /*下面就是创建String类的一个对象,调用构造器2种写法,都一样*/
        /*
        String a=new String(chars);
        return a;
        */
        return new String(chars);
    }
}

注册实例,异常抛出

package Day10;

import java.util.Scanner;
import java.util.regex.Pattern;

public class Hwork02 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("用户名:");
        String name = s.next();
        System.out.print("密码:");
        String passwd = s.next();
        System.out.print("邮箱:");
        String email = s.next();
        try {
            test(name, passwd, email);
            // 看有没有thorw出来的错误,没有就执行下面,有就进入catch
            System.out.println("注册成功了");

        } catch (Exception e) {
            //把错误转为消息,用字符串输出
            System.out.print(e.getMessage());
        }
    }

    public static void test(String name, String pwd, String email) {
        if (!(name.length() >= 2 && name.length() <= 4)) {
            throw new RuntimeException("用户名长度为2-4位");
        }
        if (!(pwd.length() == 6 && isNumeric(pwd))) {
            throw new RuntimeException("密码是6位且全部是数字");
        }
        //第一种判断字符在不在某个字符串内的方法,indexOf返回的是int类型,不再这个字符串就返回-1
        int a1 = email.indexOf('@');//不再返回-1
        int a2 = email.indexOf('.');
        if (!(a1 > 0 && a1 < a2)) {
            throw new RuntimeException("邮箱包含@和. , 且@在.前面。");
        }
        //第二种调用方法
        //email.contains()方法返回的是bool类型,在就是true
        if (!(email.contains("@") && email.contains(".") && isEmail(email))) {
            throw new RuntimeException("邮箱包含@和. , 且@在.前面。");
        }
    }

    public static boolean isNumeric(String str) {
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            //利用ASCII码判断是否全为数字
            if (chars[i] < '0' || chars[i] > '9') {
                return false;
            }
            /*另外一种写法也可以
            charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。
            for (int j = 0; j < str.length(); j++) {
                if(str.charAt(i)>='0'&&str.charAt(i)<='9'){
                    return false;
                }
            }*/
        }
        //没有除了数字之外的 返回true
        return true;
    }

    public static boolean isEmail(String email) {
        //包含@和. 并且@在.的前面
        char[] chars = email.toCharArray();
        int flag = 0;
        int flag2 = 0;
        for (int i = 0; i < chars.length; i++) {
            if (chars[i] == '@') {
                flag = i;
            }
            if (chars[i] == '.') {
                flag2 = i;
            }
        }
        return flag < flag2 ? true : false;
    }
}


字符串的拆分,以及判断,统计大写字母、小写字母、数字个数

package Day10;

public class Hwork3 {
    public static void main(String[] args) {
        String n = "China1234592123cHINA@@@";
        panduan(n);
    }

    public static void panduan(String str) {
        if(str==null){
            System.out.println("输入的字符串不能位空!");
            return;
        }
        int Big = 0;
        int small = 0;
        int num = 0;
        int other=0;
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (str.charAt(i)>='0' && str.charAt(i) <= '9') {
                num += 1;
            } else if (chars[i] >= 65 & chars[i] <= 90) {
                Big += 1;
            } else if(str.charAt(i)>='a' && str.charAt(i) <= 'z'){
                small += 1;
            }else{
                other+=1;

            }
        }
        System.out.println("大写字母:" + Big + "个" + "\n" + "小写字母:" + small + "个" + "\n" + "数字:" + num + "个"+"\n"+
                "其他字符:" + other + "个");
    }
}

集合

集合的2中遍历方法

package ListApp;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class List001 {
    public static void main(String[] args) {
        //Collection 中文 集合
        Book book1 = new Book("张三",18);
        Book book2 = new Book("李四",22);
        Book book3 = new Book("王二",48);
        Book book4 = new Book("小明",28);
        //Collection是ArrayList的父类
        //引用类型arrayList 会先在编译类型中寻找有无这个方法
        //如果有且子类中没有就会调用编译类型的方法即Collection的方法
        //如果发现运行类型也有,就会优先调用运行类型的方法,称为:动态绑定
        Collection arrayList = new ArrayList();
        arrayList.add(book1);
        arrayList.add(book2);
        arrayList.add(book3);
        arrayList.add(book4);
        System.out.println(arrayList);
        //使用iterator迭代器遍历集合
        //迭代器类(Iterator)中有一个方法iterator(),其返回值就是一个迭代器对象
        //调用arrayList的iterator方法,生成一个迭代器,传给引用类型iterator。
        //Iterator是ArrayList的父类及接口,仅用于遍历集合
        Iterator iterator = arrayList.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            System.out.println(next);
        }
        //此时指针在最下面 想要重置
        Iterator iterator1 = arrayList.iterator();
        //ok 重置完成


    //    Collection遍历方式二
        //方法 arrayList.for 遍历集合
        System.out.println("增强for循环遍历");
        for (Object o : arrayList) {
            System.out.println(o);
        }

        /*collection 扁你*/
    }
}
class Book{
    private String name;
    private int age;

    public int getAge() {
        return age;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Book(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}


遍历练习

package ListApp;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Dog {
    public static void main(String[] args) {
        Collection c=new ArrayList<>();
        Cat c1 = new Cat("tom", 18);
        Cat c2 = new Cat("jery", 28);
        Cat c3 = new Cat("miko", 38);
        Cat c4 = new Cat("rookie", 48);
        c.add(c1);
        c.add(c2);
        c.add(c3);
        c.add(c4);
        //必须声明成迭代器 Iterator 否则永远出不来while循环
        Iterator iterator = c.iterator();
        System.out.println("调用对象的方法,遍历输出集合:");
        while (iterator.hasNext()){
            Object next = iterator.next();
            System.out.println(next);
            //不能写成下面那个样,这样指针就一直在那个位置,永远不动
            //System.out.println(c.iterator().next());
        }
        //直接强for循环输出
        System.out.println("for输出:");
        for (Object o : c) {
            System.out.println(o);
        }
    }
}
class Cat{
    private String name;
    private  int age;

    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    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 Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

集合中常用的方法

package ListApp;

import java.util.ArrayList;
import java.util.List;

public class List002 {
    public static void main(String[] args) {
        List arrayList = new ArrayList();
        //List取出顺序和添加顺序一致,可重复
        arrayList.add("zz");
        arrayList.add("hhh");
        arrayList.add("hhh");
        System.out.println(arrayList);
        //List的每个元素都有对应的索引
        System.out.println(arrayList.get(1));
        //插入索引为1的地方
        arrayList.add(1,"adwda");
        System.out.println(arrayList);
        //在某个位置加入多个
        ArrayList list = new ArrayList();
        list.add("qweqweqweqw");
        list.add("cxzcxzxzcxz");
        list.add("zz");
        arrayList.addAll(1,list);
        System.out.println(arrayList);
        //寻找索引位置的值
        System.out.println(arrayList.get(3));
        //寻找对象第一次出现的位置
        System.out.println(arrayList.indexOf("zz"));
        //寻找最后一次出现的位置
        System.out.println(arrayList.lastIndexOf("zz"));
        //移除指定位置的元素,并返回他的值
        list.remove(0);
        System.out.println(arrayList);
        //替换
        arrayList.set(0,"漳卅");
        System.out.println(arrayList);
        //前闭后开 返回一个子集合
        List list1 = arrayList.subList(0, 2);
        System.out.println(list1);

    }
}


package ListApp;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class exmpel001 {
    public static void main(String[] args) {
        List arrayList = new ArrayList();
        arrayList.add("hello");
        arrayList.add("1");
        arrayList.add("2");
        arrayList.add("3");
        arrayList.add("4");
        arrayList.add("5");
        arrayList.add("6");
        arrayList.add("7");
        arrayList.add("8");
        //在某个位置插入一个元素NIHAO
        arrayList.add(1,"NIHAO");
        //获得第5个元素
        Object o = arrayList.get(4);
        //删除第六个元素
        Object remove = arrayList.remove(6);
        //修改第七个元素
        arrayList.set(7,"china");
        Iterator iterator = arrayList.iterator();
        while (iterator.hasNext()){
            Object next = iterator.next();
            System.out.println(next);
        }

    }
}


补充一个方法,将int转为字符串类型 + 一个空字符串“” 即可

end 加油 明天继续 再接再厉

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Keyle777

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

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

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

打赏作者

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

抵扣说明:

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

余额充值