以下是使用 Java 实现的根据给定的 DFA 来判断输入字符串是否为 4 位无符号整数的程序: ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class FourDigitUnsignedIntegerDFA { public static final int FINAL = 5; public static final int ERROR = 6; public static int[][] integerDFA = { {0, 0, 0}, {0, 2, ERROR}, {0, 3, FINAL}, {0, 4, FINAL}, {0, FINAL, FINAL}, {0, ERROR, ERROR}, {0, 0, 0} }; public static boolean isFourDigitUnsignedInteger(String input) { int currentState = 1; for (char c : input.toCharArray()) { int inputSymbol = getInputSymbol(c); currentState = integerDFA[currentState][inputSymbol]; if (currentState == ERROR) { return false; } } return currentState == FINAL; } public static int getInputSymbol(char c) { if (Character.isDigit(c)) { return 0; } else { return 1; } } public static void main(String[] args) { try (BufferedReader reader = new BufferedReader(new FileReader("input.txt")); FileWriter writer = new FileWriter("output.txt")) { String input = reader.readLine(); boolean result = isFourDigitUnsignedInteger(input); writer.write(result? "true" : "false"); } catch (IOException e) { e.printStackTrace(); } } } ``` [2024-10-07 19:23:58 | AI写代码神器 | 423点数解答]