目录
1、随机生成一个10个元素组成一维数组,输出数组中的最大值、最小值、所有元素总和,以及最大值和最小值在该数组中的位置,并实现数组的排序。
4、编译并运行下面的程序,观察分析运行结果,体会程序super和this的用法,进一步理解变量隐藏和方法重写的概念。
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,输入代码,运行结果如下。



1163

被折叠的 条评论
为什么被折叠?



