免费无广纯净版微信小程序测mbti很有趣,不需要任何授权,也不需要登录,直接就是测,几分钟了解自己的人格mbti,快来试试吧。
可以微信直接搜索小程序名“一秒MBTI”
一、实验目的
1. 掌握 Java 编程基本语法。
2. 掌握数组、字符串和哈希表的使用。
3. 熟练使用 IDEA、Eclipse 等集成开发环境工具。
二、实验内容
上机实现下列程序并观察程序的运行情况:
1. 编写 Java 程序统计一篇英文文档中各单词出现的次数,并按单词出现的
频率由高到低进行输出。
例如:文档“Hello word Hello”的统计结果为:
Hello:2 次
word:1 次
2. 声明一个二维数组,为数组的每个元素赋值,并输出数组的值。
3. 编写一程序,查找某一字符串中是否包含有“abc”。
三、实验要求(必做实验,2 学时)
1. 在“四、实验结果”小节,附上每道习题的程序代码和运行结果截图,
具体格式要求见“实验报告撰写要求”。
2. 在“五、问题总结”小节,总结在编程过程中遇到的难题、错误、解决
方法及收获。
3. 在“六、心得体会”小节,总结对本次实验涵盖的知识点掌握程度、对
编程工具的使用心得体会、以及对实验内容的建议等。
四、实验结果
1. 编写 Java 程序统计一篇英文文档中各单词出现的次数,并按单词出现的频率由高到低进行输出。
java代码
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = null;
HashMap<String, Integer> map = new HashMap<>();
// 读取输入和统计频率
while (scanner.hasNextLine()) {
str = scanner.nextLine();
if (str.equals("")) {
break;
}
String[] words = str.split(" ");
for (String word : words) {
if (map.containsKey(word)) {
map.put(word, map.get(word) + 1);
} else {
map.put(word, 1);
}
}
}
// 创建一个ArrayList来存储结果
ArrayList<String> words = new ArrayList<>();
Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
words.add(iterator.next());
}
// 简单的冒泡排序,按频率从高到低
for (int i = 0; i < words.size() - 1; i++) {
for (int j = 0; j < words.size() - 1 - i; j++) {
String word1 = words.get(j);
String word2 = words.get(j + 1);
if (map.get(word1) < map.get(word2)) {
// 交换位置
words.set(j, word2);
words.set(j + 1, word1);
}
}
}
// 输出结果
for (String word : words) {
System.out.println(word + ": " + map.get(word) + "次。");
}
}
}
运行结果

2. 声明一个二维数组,为数组的每个元素赋值,并输出数组的值。
java代码
import java.util.*;
public class Main {
public static void main(String[] args) {
// 声明并直接初始化二维数组
int[][] array = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 输出数组的值
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
}
运行结果
3.编写一程序,查找某一字符串中是否包含有“abc”。
java代码
import java.util.*;
public class Main {
public static void main(String[] args) {
// 定义一个测试字符串
String str = "helloabcdworld";
// 使用contains()方法检查是否包含"abc"
if (str.contains("abc")) {
System.out.println("字符串中包含'abc'");
} else {
System.out.println("字符串中不包含'abc'");
}
}
}
运行结果
五、问题总结
在本次实验的编程过程中,我遇到了一些难题和错误,以下是对这些问题的总结、解决方法以及收获:
难题:单词统计程序中输入处理问题
- 问题描述:在实现第一个程序(单词频率统计)时,最初不清楚如何正确读取多行输入并在适当的时候停止输入,导致程序要么只能处理单行,要么无限等待输入。
- 解决方法:通过查阅 Scanner 类的文档,了解到可以使用 hasNextLine() 方法判断是否有下一行输入,并在输入空行时用 break 跳出循环。这种方法既简单又能满足实验需求。
- 收获:掌握了 Scanner 类在处理多行输入时的使用技巧,理解了如何设计程序的输入终止条件。
错误:字符串查找逻辑过于复杂
- 问题描述:在第三个程序中,起初尝试手动遍历字符串查找 "abc",代码复杂且容易出错。
- 解决方法:后来发现 Java 的 String 类提供了 contains() 方法,直接调用即可实现需求,大大简化了代码。
- 收获:认识到使用内置方法可以提高编程效率,避免重复造轮子。
总结:通过本次实验,我学会了如何调试代码、chat with AI解决问题,同时对 Java 的基本语法和工具类(如 HashMap、Scanner)有了更深的认识。
六、心得体会
通过本次实验,我对所涵盖的知识点、编程工具的使用以及实验内容有了以下心得和体会:
- 知识点掌握程度
- 本次实验让我较好地掌握了 Java 的基本语法,包括变量声明、循环、条件语句等。同时,通过实现单词统计、二维数组操作和字符串查找,我熟悉了数组、字符串和哈希表的基本用法。
- 尤其是在使用 HashMap 统计单词频率时,我深刻体会到哈希表的键值对结构在处理统计问题上的高效性。不过,对更复杂的排序算法(如 TreeMap 或 Comparator)的使用还需进一步学习。
- 编程工具使用心得
- 在实验中,我使用了 IDEA 作为开发工具,其代码自动补全、调试功能和错误提示极大提高了编程效率。例如,在调试单词统计程序时,IDEA 的断点功能帮助我快速定位输入处理问题。
- 通过本次实验,我对集成开发环境(IDE)的优势有了更直观的感受,学会了如何利用工具提高开发效率,同时也意识到熟练掌握 IDE 的快捷键和功能是未来需要努力的方向。
对实验内容的建议
- 如果能在实验指导中提供一些常见错误的示例和解决思路,会更有助于我们快速上手和理解。
总体体会:本次实验让我从理论走向实践,增强了对 Java 编程的信心,同时也让我意识到编程不仅需要逻辑思维,还需要耐心和细心。我期待在后续学习中接触更多实际应用场景,进一步提升自己的编程能力。


6070

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



