智能医学工程-计算机程序设计-实验03:数组与字符串

1 阅读4分钟

一、实验目的

  1. 掌握数组的定义、初始化及常见操作,如遍历、查找、排序等。

  2. 理解字符串的不可变性,熟悉StringStringBuilderStringBuffer的用法及差异。

  3. 验证数组和字符串在Java中常用的方法,理解它们在实际编程中的应用场景。

二、实验学时

2学时

三、实验类型

验证性

四、实验需求

1、硬件

每人配备计算机1台,建议优先使用个人计算机开展实验。

2、软件

安装IntelliJ IDEA,以及Java运行所需要的相关基础环境。

3、网络

本地主机能够访问互联网和实验中心网络。

4、工具

无。

五、实验任务

  1. 定义和操作一维数组,进行排序、查找等操作。

  2. 使用二维数组处理简单矩阵的计算。

  3. 练习字符串的连接、替换、比较,了解StringStringBuilder之间的性能差异。

  4. 结合数组和字符串,完成一个简单的编程任务,如统计字符串中的字符频率。

六、实验内容及步骤

实验1:数组的定义和操作

步骤1、定义和初始化一维数组

  1. 定义一个包含10个整数的数组,并手动初始化其中的值。

  2. 打印数组中的所有元素,使用两种方式:

  • for循环

  • 增强型for循环

步骤2、数组的排序与查找

  1. 对数组进行升序排序,要求使用两种方法实现:
  • 手动编写冒泡排序算法。

  • 使用Arrays.sort()方法。

  1. 在排序后的数组中查找某个特定的数字,返回其索引位置。使用:
  • for循环手动查找。

  • Arrays.binarySearch()方法。

步骤3、定义和操作二维数组

  1. 定义一个3x3的二维数组,并手动初始化每个元素的值。

  2. 打印二维数组的所有元素,使用双重for循环。

  3. 计算二维数组中所有元素的总和。

实验2:数组的定义和操作

步骤1、字符串的定义和基本方法

  1. 定义两个字符串,分别为str1 = "Hello"str2 = "World"

  2. 使用+运算符和concat()方法将两个字符串拼接在一起,生成"HelloWorld",并打印结果。

  3. 比较两个字符串,判断它们是否相等,使用equals()==

  4. 获取拼接后的字符串的长度,使用length()方法。

步骤2、字符串的常见操作

  1. 将拼接后的字符串全部转换为大写字母,使用toUpperCase()方法。

  2. 替换字符串中的某个字符,将"HelloWorld"中的'o'替换为'X',使用replace()方法。

  3. 截取字符串中的一部分,提取"HelloWorld"中的"World",使用substring()方法。

实验3:StringStringBuilder的性能对比

步骤1、字符串与StringBuilder的区别

  1. 使用普通的String对象进行字符串连接操作,定义一个for循环,循环1000次,每次将字符串"a"附加到原有字符串上。

  2. 使用StringBuilder进行同样的操作,比较两者的执行时间。

步骤2、观察并记录两种方法的时间差异,理解String的不可变性如何影响性能。

代码示例

public class StringPerformanceTest {

public static void main(String[] args) {

long startTime = System.currentTimeMillis();

// 使用String进行字符串拼接

String str = "";

for (int i = 0; i < 1000; i++) {

str += "a";

}

long endTime = System.currentTimeMillis();

System.out.println("使用String的时间: " + (endTime - startTime) + " ms");

// 使用StringBuilder进行字符串拼接

startTime = System.currentTimeMillis();

StringBuilder sb = new StringBuilder();

for (int i = 0; i < 1000; i++) {

sb.append("a");

}

endTime = System.currentTimeMillis();

System.out.println("使用StringBuilder的时间: " + (endTime - startTime) + " ms");

}

}

实验4:字符串与数组的结合

步骤1、统计字符串中每个字符出现的次数

  1. 输入一个字符串,统计其中每个字符出现的次数,并输出结果。

  2. 提示:可以使用一个int[]数组,数组的下标表示字符的ASCII码,数组的值表示该字符出现的次数。

步骤2、统计字符串中每个字符出现的次数

在程序中输入不同的字符串,验证输出结果的正确性。

代码示例

public class CharFrequency {

public static void main(String[] args) {

String input = "hello world";

int[] freq = new int[128]; // 假设只包含ASCII字符

for (char c : input.toCharArray()) {

freq[c]++;

}

for (int i = 0; i < freq.length; i++) {

if (freq[i] > 0) {

System.out.println((char) i + ": " + freq[i]);

}

}

}

}

七、实验考核

本实验考核采用【实验随堂查】方式开展。

每个实验完成后,在实验课上通过现场演示的方式向实验指导教师进行汇报,并完成现场问答交流。

每个实验考核满分100分,其中实验成果汇报60分,现场提问交流40分。

实验考核流程:

(1)学生演示汇报实验内容的完成情况,实验指导老师现场打分。

(2)指导老师结合实验内容进行提问,每位学生提问2-3个问题,根据回答的情况现场打分。

(3)实验考核结束后,进行公布成绩。