欢迎访问宙启技术站
智能推送

使用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中常用的函数和技巧。