- 博客(21)
- 收藏
- 关注
原创 如何合并数组?
本文介绍了四种数组合并方法:1)基本类型数组合并,通过System.arraycopy实现;2)String数组合并,与基本类型类似;3)String数组去重合并,使用LinkedHashSet保证顺序和唯一性;4)有序数组合并,从后向前比较元素实现原地合并。所有方法都处理了null数组的情况,将其视为空数组。这些方法涵盖了常见的数据合并需求,包括基本类型、字符串、去重和有序合并等场景。
2026-04-02 15:51:45
27
原创 字符串排序
摘要:本文介绍了Java中字符串排序的两种主要方法:1) 对字符串内字符排序,使用Arrays.sort()处理字符数组;2) 对字符串数组排序,提供了三种方式:字典序排序(自然顺序)、忽略大小写排序(String.CASE_INSENSITIVE_ORDER)和按字符串长度排序(Comparator.comparingInt)。每种方法都包含空值处理,使用Comparator.nullsLast确保null值排在最后。
2026-03-30 20:15:59
33
原创 判断回文字符串
回文字符串是指正读反读都相同的字符串。本文介绍了三种判断方法:1)双指针法,通过头尾指针比较字符;2)字符串反转法,比较原串与反转后的字符串;3)改进版双指针法,可忽略大小写和非字母数字字符。空串和单字符默认视为回文。代码示例展示了每种方法的Java实现,包括基本逻辑和边界条件处理。这些方法适用于不同场景,其中双指针法效率较高,而反转法则更直观简洁。
2026-03-27 16:06:18
37
原创 字符串反转
本文介绍了两种Java字符串反转的实现方法:1)使用StringBuilder/StringBuffer的reverse()方法,代码简洁高效;2)使用字符数组通过双指针交换法实现,适合理解底层原理。两种方法都包含空值检查,能正确处理输入为null的情况。示例展示了如何将"abc"反转为"cba"等字符串操作。
2026-03-27 00:02:46
53
原创 如何求最大公约数?
最大公约数(GCD)是能同时整除两个数的最大整数。欧几里得算法通过递归应用gcd(a,b)=gcd(b,a%b)的原理高效计算GCD。算法实现时需处理特殊情况(如两数为0),并取绝对值确保正确性。该算法通过循环取余运算,最终当余数为0时,前一个余数即为最大公约数。例如12和18的GCD是6,8和12是4,互质的7和13则为1。
2026-03-25 16:26:23
29
原创 如何统计一个数字的位数?
本文介绍了计算整数位数的方法。位数指数字在十进制下的数字个数,0计为1位,负数仅统计数字部分。提供了两种实现方式:1)循环除以10法,通过不断除以10统计位数;2)字符串转换法,将数字转为字符串后去除负号计算长度。两种方法均能准确计算整数位数,前者通过数学运算实现,后者利用字符串处理特性。
2026-03-24 20:31:11
36
原创 如何判断一个数字是不是回文数?
摘要:本文介绍了判断回文数的三种方法。回文数是指正反读相同的数字,如121、0等,负数除外。方法一通过数学运算反转整个数字进行比较;方法二仅反转后半部分,与前半部分对比;方法三将数字转为字符串,使用双指针从两端向中间比较字符。三种方法均能有效判断回文数,分别适用于不同场景,其中方法二在效率上更具优势。
2026-03-24 19:55:22
72
原创 输出第 n 项斐波那契数
本文介绍了斐波那契数列的两种计算方法:递归法和循环迭代法。斐波那契数列定义为F(0)=0,F(1)=1,当n≥2时F(n)=F(n-1)+F(n-2)。递归法直接按定义实现,但效率较低;循环迭代法通过存储前两项并逐步计算,效率更高。两种方法都包含参数校验,确保n为非负整数。递归法适用于小规模计算,而迭代法更适合大规模数列求解。
2026-03-23 16:39:03
27
原创 猜数字游戏
这是一个Java实现的数字猜谜游戏程序。程序提供三种难度级别:简单(1-10)、中等(1-50)和困难(1-100)。用户选择难度后,程序会随机生成目标数字,用户需要猜测该数字,程序会提示猜测是太大还是太小。游戏支持中途退出(输入0)和重新开始功能。程序包含异常处理机制,能有效应对用户输入错误,并采用递归方式实现游戏循环。这是一个简单的控制台交互游戏,适合初学者学习Java基本语法和流程控制。
2026-03-22 19:22:23
32
原创 判断质数(Java)
摘要:这段Java代码实现了一个质数判断程序。通过Scanner获取用户输入的正整数,使用isPrime方法进行判断。若输入小于2会抛出异常,2直接返回true,偶数返回false,其他数字通过循环判断能否被奇数整除。程序包含异常处理,能捕获输入错误并给出提示。最后关闭Scanner资源,确保程序健壮性。
2026-03-21 17:21:28
27
原创 数字的反转
该Java程序实现了一个数字反转功能。主要特点:1) 通过Scanner获取用户输入的整数;2) 使用reverseNum方法进行数字反转处理;3) 在反转过程中检查long类型范围溢出情况;4) 包含异常处理机制,能捕获输入类型不匹配错误。程序输出原始数字和反转后结果,若超出范围则提示错误信息。最后通过finally块确保Scanner资源被正确关闭。
2026-03-21 17:20:33
24
原创 计算从1到n之和
该Java程序实现了两种计算1到n累加和的方法:循环累加和等差数列公式计算。程序通过Scanner获取用户输入的正整数n,若输入非法会抛出异常提示。sumByLoop方法使用for循环实现累加,sumByFormula方法采用等差数列求和公式n(n+1)/2。两种方法都会验证n≥1,否则抛出IllegalArgumentException。程序最后会关闭Scanner资源并输出两种方法的结果。
2026-03-19 23:29:03
22
原创 三个数最大值判断
这段Java代码实现了一个比较三个整数并输出最大值的程序。程序通过Scanner获取用户输入的三个整数,使用Math.max方法比较出最大值后输出。代码包含异常处理机制,当用户输入非整数时会提示输入错误。最后在finally块中关闭Scanner资源。核心方法是getMaxOfThreeNumbers,它通过嵌套调用Math.max来比较三个数的大小。
2026-03-19 22:51:27
31
原创 表驱动法:告别 if-else(案例:查月份天数、成绩分级)
摘要:本文展示了使用查表法替代条件判断的编程技巧。通过定义月份天数数组和成绩等级数组,实现快速查询功能:1)get_days_in_month()函数通过数组查询各月份天数,自动处理闰年2月天数;2)get_grade()函数将百分制成绩转换为等级制,通过整数除法定位数组索引。这种方法避免了繁琐的条件分支,提高了代码可读性和执行效率。示例演示了2026年2月天数和99分对应等级的输出结果。
2026-01-16 16:39:20
233
原创 简单实现石头剪刀布
摘要:该程序实现了一个完整的石头剪刀布游戏,包含游戏规则说明、玩家输入校验、电脑随机出拳、结果判定等功能。程序使用宏定义提高代码可读性(ROCK=1,PAPER=2,SCISSORS=3),玩家输入范围校验确保有效性(1-3),电脑通过rand()随机出拳。程序会分别显示双方选择,并通过预定义的胜负关系数组精准判定输赢。所有功能模块化设计,包括print_instructions()、get_player_move()、get_computer_move()等函数,结构清晰易读。
2026-01-15 19:39:31
186
原创 字符串中 26 个英文字母的频率统计(不区分大小写)
该程序统计字符串中各字母出现的频率。首先定义一个26元素的整型数组存储字母频率,将输入字符串转为小写后遍历每个字符。若字符是字母,则通过计算其与'a'的ASCII码差值确定数组下标,对应位置计数加1。最后遍历数组输出出现过的字母及其出现次数。程序使用标准库函数进行字符处理,通过数组下标映射实现高效的字母频率统计。
2025-12-12 22:12:27
141
原创 隐式确定数组大小的初始化
摘要:隐式确定数组大小是通过初始化值让编译器自动推断数组长度,无需显式指定。C语言中仅支持静态数组(如局部、全局数组),不支持动态分配的数组。主要应用场景包括:全初始化(自动计算元素数量)、部分初始化(剩余元素自动补零)和字符串数组(自动包含结束符'\0')。通过sizeof可验证数组实际大小,但需注意数组越界访问问题。字符串数组长度计算需区分含结束符的数组大小和不含结束符的字符串长度。
2025-12-10 13:37:42
130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅