Java实验四:Java API

目录

1.定义一个方法,根据用户身份证号码计算其年龄并输出

2.Random、ArrayList、Iterator三个类的结合使用 

3.分别统计字符串中大写字母、小写字母以及数字与其他字符的个数

 4.编写一个程序,实现字符串大小写的转换并倒序输出


1.定义一个方法,根据用户身份证号码计算其年龄并输出

利用String类输入身份证号,身份证号的第七位到第十位为出生年,在String类的字符串中对应下标为6到9,再利用StringBuilder类将身份证号的下标为6——9的字符拼接即可.

import java.util.Scanner;

public class Solution1 {
    //利用String类来解决该问题
    public static void calculateAge(String idNumber) {
        StringBuilder sb = new StringBuilder();
        for (int i = 6; i <= 9; i++) {
            sb.append(idNumber.charAt(i));
        }
        int birth = Integer.valueOf(sb.toString());
        int age = 2022 - birth + 1;
        System.out.println("该用户的年龄为: " + age);
    }

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入你的身份证号");
        String idNumber = scan.next();
        calculateAge(idNumber);
    }
}

运行结果 

 

2.Random、ArrayList、Iterator三个类的结合使用 

采用Random类或者Math类随机生成一组随机数,存入List集合类(ArrayList、LinkedList等都可以),并利用Iterator接口便利集合。

利用Random生成随机数,在nextInt()方法传入参数100,即指定随机生成的数字范围为0~99,在for循环中指定生成8个随机数,边生成边将其存入顺序表中,之后再利用Iterator迭代器对其进行遍历输出.

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

public class Solution2 {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        Random random = new Random();
        for (int i = 0; i < 8; i++) {
            list.add(random.nextInt(100));//约束生成数字的范围0~99
        }
        Iterator iterator = list.iterator();
        while(iterator.hasNext()) {
            int x = (int) iterator.next();
            System.out.print(x + " ");
        }
    }
}

运行结果 

3.分别统计字符串中大写字母、小写字母以及数字与其他字符的个数

分别统计字符串中出现的大写字母、小写字母个数,以及出现的数字字符以及其他字符的个数。

利用String类及其常用方法来实现该功能,利用charAt方法来实现对每一个字符的访问,再定义四个变量,分别用来统计大写、小写字母、数字、字符的个数,之后依次输出即可

import java.util.Scanner;

public class Solution3 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("请输入字符串: ");
        String str = scan.next();
        int a = 0;//小写字母个数
        int b = 0;//大写字母个数
        int c = 0;//数字个数
        int d = 0;//其他字符个数
        for (int i = 0; i < str.length(); i++) {
            if(str.charAt(i) >= 'a' && str.charAt(i) <= 'z') {
                a++;
            }else if(str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
                b++;
            }else if(str.charAt(i) >= '0' && str.charAt(i) <= '9') {
                c++;
            }else {
                d++;
            }
        }
        System.out.println("大写字母有: " + a + "个");
        System.out.println("小写字母有: " + b + "个");
        System.out.println("数字有: " + c + "个");
        System.out.println("其他字符有: " + d + "个");
    }
}

 4.编写一个程序,实现字符串大小写的转换并倒序输出

具体要求:(1)使用for循环将字符串从最后一个字符开始遍历。(2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符。(3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString( )方法,并将得到的结果输出。

注意:倒叙序出要单独写一个有参的方法,在主函数里调用该方法完成测试。

import java.util.Locale;
import java.util.Scanner;

public class Solution4 {
    public static void reversePrint(String str) {
        StringBuffer sbf = new StringBuffer();
        for (int i = str.length() - 1; i >= 0 ; i--) {
            char tmp = str.charAt(i);
            if(tmp >= 'a' && tmp <= 'z') {
                sbf.append(String.valueOf(tmp).toUpperCase());
            }else if(tmp >= 'A' && tmp <= 'Z') {
                sbf.append(String.valueOf(tmp).toLowerCase());
            }
        }
        System.out.println("倒叙后的结果为: " + sbf.toString());
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("请输入要倒叙输出的字符串: ");
        String str = scan.next();
        reversePrint(str);
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Li_yizYa

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

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

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

打赏作者

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

抵扣说明:

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

余额充值