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
),你需要相应地调整正则表达式和后缀处理。