Java-exp4A

目录

一、数组与字符串 

1、随机生成一个10个元素组成一维数组,输出数组中的最大值、最小值、所有元素总和,以及最大值和最小值在该数组中的位置,并实现数组的排序。

2、利用arraycopy 和 copyof 方法分别实现两个数组的内容拷贝,并利用foreach语法规则来遍历两个数组元素的内容。同时学习使用foreach语法规则来尝试写一个二维数组、三维数组的内容遍历。

 3、编写一个程序,完成以下功能:

4、利用StringBuffer类实现在字符缓冲区中存放字符串 "Happy new year!",并通过setCharAt和charAt实现字符设置和替换,利用insert实现字符的插入,利用append实现在字符串末尾添加相应的内容。

二、类与对象:

1、编写一个程序,完成以下功能:

2、创建三角形、梯形和圆形的类封装:分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。最后在主方法 main 中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。(一个文件中包含三个class 和main )

3、方法重载的练习

4、编译并运行下面的程序,观察分析运行结果,体会程序super和this的用法,进一步理解变量隐藏和方法重写的概念。

 5、下面的代码有什么错误,应该如何解决?

 6、熟悉Date类和Calendar类的成员方法的使用,完成万年历


代码文件在资源~

一、数组与字符串 

1、随机生成一个10个元素组成一维数组,输出数组中的最大值、最小值、所有元素总和,以及最大值和最小值在该数组中的位置,并实现数组的排序。

【实验具体内容】

(1)实验流程图(非必须,根据实际要求来定,算法题建议画流程图):略

(2)实验源代码(粘贴源代码):

package part1;
import java.util.Random;//随机数
import java.util.Arrays;//升序
public class ArrayExample {
	public static void main(String[] args) {
        // 创建一个Random对象用于生成随机数
        Random rand = new Random();
        
        // 创建并初始化一个包含10个元素的一维数组
        int[] array = new int[10];
        for (int i = 0; i < array.length; i++) {
            array[i] = rand.nextInt(101); // 生成0到100之间的随机数
        }
        
        // 输出原始数组
        System.out.println("原始数组:");
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
        System.out.println();
        
        // 查找最大值和最小值及其索引
        int max = array[0];
        int min = array[0];
        int maxIndex = 0;
        int minIndex = 0;
        int sum = 0;
        
        for (int i = 0; i < array.length; i++) {
            if (array[i] > max) {
                max = array[i];
                maxIndex = i;
            }
            if (array[i] < min) {
                min = array[i];
                minIndex = i;
            }
            sum += array[i];
        }
        
        // 输出最大值、最小值、总和
        System.out.println("最大值:" + max + ",位置:第" + (maxIndex+1)+"个");
        System.out.println("最小值:" + min + ",位置:第" + (minIndex+1)+"个");
        System.out.println("所有元素总和:" + sum);
        
        // 对数组进行升序排序
        Arrays.sort(array);
        
        // 输出排序后的数组
        System.out.println("排序(升)后的数组:");
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
    }
}

(3)实验代码、过程、相应结果(截图)并对实验进行说明和分析:

新建包part1,新建类ArrayExample,输入代码,运行结果如下。

2、利用arraycopy 和 copyof 方法分别实现两个数组的内容拷贝,并利用foreach语法规则来遍历两个数组元素的内容。同时学习使用foreach语法规则来尝试写一个二维数组、三维数组的内容遍历。

【实验具体内容】

(1)实验流程图(非必须,根据实际要求来定,算法题建议画流程图):略

(2)实验源代码(粘贴源代码):

package part1;
import java.util.Arrays;

public class ArrayCopyExample {
	public static void main(String[] args) {
		// 使用 System.arraycopy 
        int[] original1 = {1, 2, 3, 4, 5};
        int[] copy1 = new int[original1.length];
        System.arraycopy(original1, 0, copy1, 0, original1.length);

        //使用 Arrays.copyOf
        int[] original2 = {5,4,3,2,1};
        int[] copy2 =Arrays.copyOf(original2, original2.length);
    
        // 使用 foreach 遍历
        System.out.println("arraycopy拷贝后的数组1:");
        for (int value : copy1) {
            System.out.print(value + " ");
        }
        System.out.println();

        // 使用 foreach 遍历拷贝后的数组
        System.out.println("copyof拷贝后的数组2:");
        for (int value : copy2) {
            System.out.print(value + " ");
        }
        System.out.println();
        //foreach遍历二维数组
        int[][] erArray = {
                {1, 2, 3},
                {4, 5, 6},
                {7, 8, 9}
            };
        System.out.println( "foreach遍历二维数组: ");
            for (int[] row : erArray) {//拆成行(一维)
                for (int element : row) {//遍历该行 打印
                    System.out.print(element + " ");
                }
                System.out.println(); // 每行打印完毕后换行
            }
            
          //foreach遍历三维数组
            int[][][] sanArray = {
                    {//3个元素,每个元素是二维数组
                        {1, 2}, {3, 4}//每个二维数组有2个元素为一维数组
                    },
                    {
                        {5, 6}, {7, 8}
                    },
                    {
                        {9, 10}, {11, 12}
                    }
                };
            System.out.println( "foreach遍历三维数组: ");
                for (int[][] two : sanArray) {//拆成二维切片
                    for (int[] row : two) {//拆成一维
                        for (int element : row) {//遍历
                            System.out.print(element + " ");
                        }
                        System.out.println(); // 每行打印完毕后换行
                    }
                    System.out.println("-----"); // 每个二维切片打印完毕后换行
                }
        }
	}

(3)实验代码、过程、相应结果(截图)并对实验进行说明和分析:

新建包part1,新建类ArrayCopyExample,输入代码,运行结果如下。

 3、编写一个程序,完成以下功能:

1)声明一个名为name的String对象,内容是“My name is NetworkCrazy”

2)打印字符串的长度

3)打印字符串的第一个字符

4)打印字符串的最后一个字符

5)打印子字符串NetworkCrazy(substring()方法提取子字符串)

6)利用lastIndexOf()方法搜索字符 'e' 最后一次出现的位置

java.lang.String.lastIndexOf()方法的声明

public int lastIndexOf(int ch)

【实验具体内容】

(1)实验流程图(非必须,根据实际要求来定,算法题建议画流程图):略

(2)实验源代码(粘贴源代码):

package part1;

public class StringExample {

	public static void main(String[] args) {
		 // 1) 声明一个名为name的String对象
        String name = "My name is NetworkCrazy";

        // 2) 打印字符串的长度
        System.out.println("字符串的长度: " + name.length());

        // 3) 打印字符串的第一个字符
        System.out.println("字符串的第一个字符: " + name.charAt(0));

        // 4) 打印字符串的最后一个字符
        System.out.println("字符串的最后一个字符: " + name.charAt(name.length() - 1));

        // 5) 打印子字符串NetworkCrazy(substring()方法提取子字符串)
        int startIndex = name.indexOf("NetworkCrazy");
 int endIndex = startIndex+"NetworkCrazy".length();
        String subString = name.substring(startIndex,endIndex);
        System.out.println("子字符串: " + subString);

        // 6) 利用lastIndexOf()方法搜索字符 'e' 最后一次出现的位置
        int lastIndex = name.lastIndexOf('e');
        System.out.println("字符 'e' 最后一次出现的位置: " + lastIndex);

	}

}

(3)实验代码、过程、相应结果(截图)并对实验进行说明和分析:

新建包part1,新建类StringExample,输入代码,运行结果如下。

经试验,如果String对象内容变成String name = "My name is NetworkCrazy2024";运行结果依然可以正确输出子字符串,如下。

4、利用StringBuffer类实现在字符缓冲区中存放字符串 "Happy new year!",并通过setCharAt和charAt实现字符设置和替换,利用insert实现字符的插入,利用append实现在字符串末尾添加相应的内容。

setCharAt(int index,char ch),将指定的字符ch放到index指出的位置。

charAt(int index) 获得指定位置的字符

insert(int offset,char ch),在offset位置插入字符ch。

【实验具体内容】

(1)实验流程图(非必须,根据实际要求来定,算法题建议画流程图):略

(2)实验源代码(粘贴源代码):

package part1;
public class StringBufferExample {

	public static void main(String[] args) {
		// 创建StringBuffer对象并初始化
        StringBuffer sb = new StringBuffer("Happy new year!");

        // 显示原始字符串
        System.out.println("原始字符串: " + sb);

        // 使用setCharAt替换字符
        // 将索引为5的字符'n'替换为'b'
        sb.setCharAt(5, 'b');
        System.out.println("使用setCharAt替换后的字符串: " + sb);

        // 使用charAt获取字符
        // 获取索引为5的字符
        char ch = sb.charAt(5);
        System.out.println("索引为5的字符: " + ch);

        // 使用insert插入字符
        // 在索引为12的位置插入字符'!'
        sb.insert(12, '!');
        System.out.println("使用insert插入字符后的字符串: " + sb);

        // 使用append添加内容
        // 在字符串末尾添加" Have a great year!"
        sb.append(" Have a great year!");
        System.out.println("使用append添加内容后的字符串: " + sb);
	}
}

(3)实验代码、过程、相应结果(截图)并对实验进行说明和分析:

新建包part1,新建类StringBufferExample,输入代码,运行结果如下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值