使用Java函数解决常见问题的实例解析
发布时间:2023-09-01 10:30:18
问题一:求一个整数数组的和
解决方法一:使用循环遍历数组,将所有元素相加得到结果。
public static int arraySum(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
解决方法二:使用Java 8的流(Stream)来处理数组,调用sum()方法得到结果。
import java.util.Arrays;
public static int arraySum(int[] arr) {
return Arrays.stream(arr).sum();
}
问题二:判断一个数字是否是素数
解决方法一:使用循环遍历从2到n-1的所有数字,判断是否有能整除n的数字。
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
解决方法二:优化循环的范围,只需要遍历从2到n的平方根的数字,因为如果n有一个大于它的因子,那么必定有一个小于它的因子。
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
问题三:计算一个字符串中某个字符的出现次数
解决方法一:遍历字符串的每个字符,使用if语句判断是否是目标字符,并记录次数。
public static int countChar(String str, char c) {
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == c) {
count++;
}
}
return count;
}
解决方法二:使用Java 8提供的stream()方法来处理字符串,使用filter()方法筛选出目标字符,然后调用count()方法得到出现次数。
public static long countChar(String str, char c) {
return str.chars().filter(ch -> ch == c).count();
}
问题四:判断一个字符串是否回文
解决方法一:使用循环分别从字符串的开始和结尾向中间遍历,判断对应字符是否相等。
public static boolean isPalindrome(String str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
解决方法二:使用StringBuilder的reverse()方法将字符串反转,然后与原字符串比较是否相等。
public static boolean isPalindrome(String str) {
return new StringBuilder(str).reverse().toString().equals(str);
}
以上是几个常见问题的Java函数解决方法的示例和实现,通过这些示例,可以学到如何使用Java函数来解决常见问题,并展示了一些Java中常用的函数和技巧。
