首页手机java查找重复数字 java查找相同字符串

java查找重复数字 java查找相同字符串

圆圆2025-08-22 22:00:56次浏览条评论

查找首尾数字相同的数字:java教程

正如本文所述,本文将详细介绍如何使用Java编写一个方法,用于查找内存阵列中首尾数字相同的数字。我们将深入探讨如何将整数转换为字符串进行比较,并提供完整的代码示例和注意事项,帮助读者理解和应用该方法。

方法实现

以下是如何实现该功能的Java代码:import java.util.ArrayList;import java.util.List;public class FindSameFirstLastDigit { public int[] findDuplicates(int[] a) { Listlt;Integergt; result = new ArrayListlt;gt;(); boolean[]numbersThatHaveBeenAdded = new boolean[a.length]; for (int i = 0; i lt; a.length; i ) { for (int j = i 1; j lt; a.length; j ) { String iNumber = String.valueOf(a[i]); String jNumber = String.valueOf(a[j]); if (iNumber.charAt(0) == jNumber.charAt(0) amp;amp; iNumber.charAt(iNumber.length() - 1) == jNumber.charAt(jNumber.length() - 1)) { 如果(!numbersThatHaveBeenAdded[i]) { result.add(a[i]); numbersThatHaveBeenAdded[i] = true; } if (!numbersThatHaveBeenAdded[j]) { result.add(a[j]); numbersThatHaveBeenAdded[j] = true; } } } } return result.stream() .mapToInt(Integer::intValue) .toArray(); } public static void main(String[] args) { FindSameFirstLastDigit finder = new FindSameFirstLastDigit(); int[] inputArray = {121, 232, 12, 34, 55, 101, 202, 1, 11}; int[] resultArray = finder.findDuplicates(inputArray);

System.out.print(quot;首尾相同的数字: quot;); for (int num : resultArray) { System.out.print(num quot; quot;); } System.out.println(); // 输出: 首尾相同的数字: 121 232 101 202 11 }}登录后复制

代码解释:

findDuplicates(int[] a) 方法:该方法接收一个整数数组a作为输入。

立即学习“Java学习笔记(深入)”;

Listlt;Integergt; result = new ArrayListlt;gt;();:创建一个免费的ArrayList来存储结果,即首尾数字相同的数字。

boolean[]numbersThatHaveBeenAdded = new boolean[a.length];: 创建一个布尔备份,用于记录哪些数字已被添加到结果列表中,避免重复添加。

外层循环 for (int i = 0; i lt; a.length; i ) 和内层循环 for (int j = i 1; j lt; a.length; j ):使用修复循环恢复阵列中的所有数字对。内层循环从 i 1开始,避免重复比较相同的数字对,并减少比较次数。

String iNumber = String.valueOf(a[i]);和 String jNumber = String.valueOf(a[j]);:将整数转换为字符串,以便比较首尾字符。

if (iNumber.charAt(0) == jNumber.charAt(0) amp;amp; iNumber.charAt(iNumber.length() - 1) == jNumber.charAt(jNumber.length() - 1)):检查两个数字的首字符和尾字符是否相同。 iNumber.charAt(0) 获取第一个数字的第一个字符,iNumber.charAt(iNumber.length() - 1) 获取第一个数字的最后一个字符。

if (!numbersThatHaveBeenAdded[i]) 和 if (!numbersThatHaveBeenAdded[j]):检查当前数字是否已经被添加到结果列表中。如果尚未添加,则将其添加到结果列表中,然后NumbersThatHaveBeenAdded 阵列中应答的索引设置为 true。

return result.stream().mapToInt(Integer::intValue).toArray();:将 ArrayList 转换为 int[] 阵列并返回。使用 Java 8 的 Stream API 进行转换。

注意事项类型转换:将整数转换为字符串是关键步骤,这样才能地访问和比较数字的首尾字符。避免重复:使用numbersThatHaveBeenAdded可以有效地避免将相同的数字重复添加到结果列表中。性能优化考虑:对于大型集群,可以高效使用更更的数据结构或算法来提高性能。例如,可以使用HashMap来存储每个数字的首尾数字组合,从而比较减少次数。错误处理:在实际应用中,应考虑输入队列为空或包含无效数据的情况,并进行适当的错误处理。总结

本文提供了使用 Java 的方法查找阵列中首尾数字相同的数字的方法。该方法通过将整数转换为字符串,并比较字符串的首尾字符来实现。通过使用布尔备份,可以有效地避免重复添加数字。希望本教程能够帮助读者理解该方法,并在实际开发中得到帮助。

以上就是查找首尾数字相关的数字:Java教程的详细内容,更多请关注乐常识网其他文章!

查找首尾数字相同的数
Pydantic v2 模型中实现条件性必填字段
相关内容
发表评论

游客 回复需填写必要信息