java实验四正式报告

Posted _DiMinisH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java实验四正式报告相关的知识,希望对你有一定的参考价值。

实验四 Java API(实验报告)

姓名: XXX          班级: XXX          学号: XXX

一、实验目的

  在集成开发环境下,通过阅读Java API文档来使用合适的常用类及方法解决实际问题。

二、实验目标

  1.能够通过阅读Java API文档来灵活运用Java API中的一些常用类(例如String、StringBuffer、System、Runtime、Math、Random等)来解决实际问题。
  2.能够灵活运用用Java语言的常用集合类(ArrayList、Map、Collections、Array等)来解决实际问题。

三、实验内容

3.1 实验环境

IntelliJ IDEA Ultimate Edition 2021.3 x64. + openjdk-17.0.1.

3.2 具体实验内容

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

问题分析:用户的身份证号, 第6位到第13位是出生年月日, 根据这个计算当前的年龄, 用户身份证号假设用String类型, 可以使用substring方法截取出生日期

身份证: 123456 2000 1006 7890

import java.util.Scanner;

public class QuestionOne 
    public static void main(String[] args) 
        Scanner scanner = new Scanner(System.in);
        String id = scanner.next();
        System.out.println(calculateAge(id));
    

    //123456 2000 1006 7890
    public static int calculateAge (String id) 
        String yearString = id.substring(6, 10);
        String monthString = id.substring(10,14);
        int year = 2021 - Integer.parseInt(yearString);
        int month = Integer.parseInt(monthString.substring(0,2));
        if (month > 11)
            year++;
        return year;
    

  • 实验结果

123456200010067890
21

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

问题分析:使用Random类产生随机数

package experiment4;

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

public class QuestionTwo 
    public static void main(String[] args) 
//        for (Integer integer : generateRandomNumber())
//            System.out.println(integer);
        Iterator<Integer> integers = generateRandomNumber().iterator();
        while (integers.hasNext())
            System.out.println(integers.next());
    

    public static ArrayList<Integer> generateRandomNumber () 
        Random random = new Random();
        ArrayList<Integer> arrayList = new ArrayList<>();
        for (int i = 0; i < 10; i++)
            arrayList.add(random.nextInt(1000));
        return arrayList;
    

  • 实验结果

397
308
902
385
328
231
431
611
35
790

问题三
  • 获取当前的系统日期和时间来产生订单的单号,单号的构成:D+年份+月份+日期+时钟+分钟+秒+系统用户账号,要用到日期类Date(通过使用API文档来掌握该类的用法)。

问题分析:使用java.time.LocalDate类获取年月日, 使用java.time.LocalDateTime类获得当前系统时间, 创建订单类

import java.time.LocalDate;
import java.time.LocalDateTime;

public class QuestionThree 
    public static void main(String[] args) 
        Order order = new Order();
        System.out.println(order.getOrder());
    



class Order 
    private int year;
    private int month;
    private String time;
    private final String account = "ADMIN";
    private String order;
    public Order () 
        this.year = LocalDate.now().getYear();
        this.month = LocalDate.now().getMonth().getValue();
        this.time = LocalDateTime.now().toString().substring(11, 19);
        this.order = this.year + "" + this.month + time + account;
    
    public String getOrder () 
        return this.order;
    
  • 实验结果

20211100:49:41ADMIN

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

问题分析:倒序从最后一个开始, 使用循环, 倒着依次进行判断, 小写转大写插入, 大写转小写插入

import java.util.Locale;

public class QuestionFour 
    public static void main(String[] args) 
        String origin = "ITcastHeiMa";
        StringBuffer stringBuffer = new StringBuffer("");
        for (int i = origin.length() - 1, j = 0; i >= 0; i--, j++) 
            char c = origin.charAt(i);
            if (c <= 'z' && c >= 'a') 
                stringBuffer.append((c + "").toUpperCase(Locale.ROOT));
            
            if (c <= 'Z' && c >= 'A') 
                stringBuffer.append((c + "").toLowerCase(Locale.ROOT));
            
        
        System.out.println(stringBuffer.toString());
    

  • 实验结果

AmIEhTSACti

四、实验总结

  学习使用了Java API, 本身对这类方法都不太熟悉, 每次使用的时候都要查看文档, 这次试验基本都使用了各种常用类的API, 课后应该多使用和巩固, 对于不常用的API, 使用的时候查文档即可

以上是关于java实验四正式报告的主要内容,如果未能解决你的问题,请参考以下文章

java实验一正式报告

java实验二正式报告

java实验五正式报告

2017-2018-2 20165315 实验四《Android程序设计》实验报告

Java实验报告四

java实验四《Android程序设计》实验报告