本文将介绍如何使用Java编写一个方法,该方法接收一个整数数组作为输入,并返回一个包含所有首尾数字相同的元素的数组。我们将通过将数字转换为字符串,并比较字符串的首尾字符来实现此功能,同时避免重复添加元素。
实现该功能的核心思路是将整数转换为字符串,然后比较字符串的首尾字符。为了避免重复添加相同的数字,我们可以使用一个布尔数组来记录哪些数字已经被添加到结果列表中。
以下是完整的Java代码实现:
import java.util.ArrayList;
import java.util.List;
public class FindSameFirstAndLastDigit {
public int[] findNumbersWithSameFirstAndLastDigits(int[] a) {
List
result = new ArrayList<>();
boolean[] numbersThatHaveBeenAdded = new boolean[a.length];
for (int i = 0; i < a.length; i++) {
for (int j = i + 1; j < a.length; j++) {
String iNumber = String.valueOf(a[i]);
String jNumber = String.valueOf(a[j]);
if (iNumber.charAt(0) == jNumber.charAt(0)
&& iNumber.charAt(iNumber.length() - 1) == jNumber.charAt(jNumber.length() - 1)) {
if (!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) {
FindSameFirstAndLastDigit finder = new FindSameFirstAndLastDigit();
int[] inputArray = {121, 232, 13, 454, 67, 787, 11, 222};
int[] resultArray = finder.findNumbersWithSameFirstAndLastDigits(inputArray);
System.out.print("Result Array: ");
for (int num : resultArray) {
System.out.print(num + " ");
}
System.out.println();
}
}代码解释:
findNumbersWithSameFirstAndLastDigits(int[] a) 方法:
main 方法 (示例):
本文详细介绍了如何使用Java编写一个方法,用于查找数组中首尾数字相同的元素。通过将数字转换为字符串,并比较字符串的首尾字符,我们可以轻松地实现该功能。同时,使用布尔数组可以避免重复添加相同的数字。希望本文能够帮助你理解和掌握该问题的解决方法。