parseInt
方法是 Java 中用于将字符串解析为整数的静态方法。当输入的字符串包含非数字字符时,parseInt
会抛出 NumberFormatException
。为了处理字符串后缀,你可以在调用 parseInt
之前对字符串进行检查和预处理。
以下是一个简单的示例,展示了如何在解析字符串之前检查并移除后缀:
public class Main { public static void main(String[] args) { String input = "123abc"; try { int result = parseIntWithSuffix(input); System.out.println("Parsed integer: " + result); } catch (NumberFormatException e) { System.out.println("Invalid input: " + input); } } public static int parseIntWithSuffix(String input) { // 检查字符串是否包含非数字字符 if (!input.matches("^-?\\d+([eE][-+]?\\d+)?$")) { throw new NumberFormatException("Invalid input: " + input); } // 移除后缀(如果存在) String cleanedInput = input.replaceAll("[^0-9]", ""); // 解析整数 return Integer.parseInt(cleanedInput); } }
在这个示例中,我们首先使用正则表达式检查字符串是否仅包含数字(包括负数和科学计数法表示)。如果字符串包含非数字字符,我们抛出一个 NumberFormatException
。接下来,我们使用 replaceAll
方法移除字符串中的所有非数字字符。最后,我们使用 Integer.parseInt
方法解析处理后的字符串。
请注意,这个示例仅适用于整数解析。如果你需要解析浮点数(如 Double.parseDouble
),你需要相应地调整正则表达式和后缀处理。