请编写一个Java程序,要求输入一个整数n,然后输出n个随机字母,如果n不在1到10之间,则抛出一个自定义的异常InvalidInputException,并在主函数中进行捕获和处理。
时间: 2024-03-25 09:36:18 浏览: 31
好的,这是一个实现你需求的 Java 程序,它可以生成 n 个随机字母,如果 n 不在 1 到 10 之间,则会抛出一个自定义的异常 InvalidInputException,并在主函数中进行捕获和处理:
```java
import java.util.Random;
class InvalidInputException extends Exception {
public InvalidInputException(String message) {
super(message);
}
}
public class Main {
public static void main(String[] args) {
try {
int n = readN();
String randomLetters = generateRandomLetters(n);
System.out.println("生成的随机字母:" + randomLetters);
} catch (InvalidInputException e) {
System.out.println("输入错误:" + e.getMessage());
}
}
private static int readN() throws InvalidInputException {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数(1~10):");
int n = scanner.nextInt();
if (n < 1 || n > 10) {
throw new InvalidInputException("输入的整数不在1~10之间");
}
return n;
}
private static String generateRandomLetters(int n) {
String letters = "abcdefghijklmnopqrstuvwxyz";
StringBuilder sb = new StringBuilder();
Random random = new Random();
for (int i = 0; i < n; i++) {
int index = random.nextInt(letters.length());
char c = letters.charAt(index);
sb.append(c);
}
return sb.toString();
}
}
```
这个程序首先会要求用户输入一个整数 n,如果 n 不在 1 到 10 之间,则会抛出一个自定义的异常 InvalidInputException。在主函数中,我们通过 try-catch 语句来捕获和处理这个异常。
如果输入的整数 n 在 1 到 10 之间,程序会调用 generateRandomLetters 函数来生成 n 个随机字母,并将结果输出。生成随机字母的函数使用了 Java 内置的 Random 类来生成随机数,并将随机数对应的字母拼接到一个新的字符串中。
注意,我们定义了一个自定义的异常类 InvalidInputException,继承自 Exception。在 readN 函数中,如果输入的整数不在 1 到 10 之间,就会抛出这个异常。在主函数中,我们通过 catch 语句来捕获这个异常,并输出对应的错误信息。