国美电器Java笔试题解析
1. 引言
在国美电器的Java笔试题中,我们将通过一系列的问题来探讨Java编程的一些基本概念和技巧。这些问题将涉及到Java语言的基本语法、面向对象编程、异常处理等方面。通过解析这些问题,我们能更好地理解Java编程的核心概念和应用场景。
2. 题目解析
2.1 问题一:字符串反转
首先,让我们来解决问题一:给定一个字符串,实现字符串反转。我们可以通过以下代码来实现:
public class StringReverse {
public static String reverse(String s) {
String reversed = "";
for (int i = s.length() - 1; i >= 0; i--) {
reversed += s.charAt(i);
}
return reversed;
}
public static void main(String[] args) {
String s = "Hello, World!";
String reversed = reverse(s);
System.out.println(reversed);
}
}
在上述代码中,我们定义了一个静态方法reverse
,该方法接受一个字符串作为参数,并返回反转后的字符串。在方法内部,我们使用一个for
循环来遍历输入字符串中的每个字符,并将其逐个添加到一个新的字符串reversed
中。最后,我们返回反转后的字符串。
在main
方法中,我们定义了一个字符串s
,并调用reverse
方法将其反转。然后,我们将反转后的字符串打印到控制台。
2.2 问题二:求质数
接下来,让我们来解决问题二:给定一个整数n,输出小于等于n的所有质数。我们可以使用如下代码来实现:
public class PrimeNumber {
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static void printPrimes(int n) {
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
}
}
}
public static void main(String[] args) {
int n = 20;
printPrimes(n);
}
}
在上述代码中,我们定义了一个静态方法isPrime
,该方法接受一个整数作为参数,并判断该整数是否为质数。如果是质数,则返回true
,否则返回false
。
在isPrime
方法内部,我们首先判断输入的整数是否小于等于1,如果是,则直接返回false
,因为质数定义为大于1的自然数。然后,我们使用一个for
循环从2开始遍历到输入的整数的平方根,如果输入的整数能被任何一个小于它本身的数整除,则该整数不是质数,返回false
。如果循环结束后都没有找到能整除的数,那么该整数就是质数,返回true
。
接下来,我们定义了一个静态方法printPrimes
,该方法接受一个整数作为参数,并输出小于等于该整数的所有质数。在方法内部,我们使用一个for
循环从2开始遍历到输入的整数,对每个整数调用isPrime
方法进行判断,如果是质数,则将其输出到控制台。
在main
方法中,我们定义了一个整数n
,并调用printPrimes
方法将小于等于n
的所有质数输出。
2.3 问题三:文件拷贝
最后,让我们来解决问题三:实现一个文件拷贝程序。我们可以使用如下代码来实现:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy {
public static void copy(String src, String dest) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream(src);
out = new FileOutputStream(dest);
byte[] buffer = new byte[1024