You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java使用Integer.parseInt()遇语法错误:Syntax error on tokens, Resources expected instead

问题解决:Integer.parseInt()语法错误及代码修复

核心错误原因

你在checkInt()方法里误用了try-with-resources语法——这种语法的括号里只能放实现了AutoCloseable接口的资源对象,而Integer.parseInt()是普通方法调用,不能放在这里,这就是触发语法错误的根本原因。

其他需要修复的问题

  • checkInt()声明为boolean类型,但没有任何return语句,编译会报错
  • java.lang包下的类默认自动导入,import java.lang.Integer;属于冗余代码,可以直接删除

修复后的完整代码

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class RentalApp{

    public static boolean checkInt(String s)
    {
        try {
            Integer.parseInt(s);
            return true; // 解析成功,返回true
        } catch (NumberFormatException e) {
            // 只捕获数字格式异常,不要捕获所有Exception
            return false; // 解析失败,返回false
        }
    }

    public static void main(String[] args)
    {
        final int WINDOW_WIDTH = 700;
        final int WINDOW_HEIGHT = 450;
        
        // 创建窗口
        JFrame window = new JFrame();
        window.setTitle("Vehicle Rental System");
        window.setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 添加选择提示文本
        JLabel text = new JLabel("Select Vehicle Type:");
        window.add(text);

        // 创建并添加下拉菜单
        String[] choices = {"Car", "Truck", "Bike"};
        final JComboBox c1 = new JComboBox(choices);
        c1.setPreferredSize(new Dimension (80, 25));
        window.add(c1);

        // 添加天数输入提示文本
        JLabel text2 = new JLabel("Enter Number of Rental Days:");
        window.add(text2);

        // 创建并添加天数输入框
        final JTextField dayInput = new JTextField(5);
        window.add(dayInput);

        // 创建并添加计算按钮
        JButton button = new JButton("Calculate Rent");
        window.add(button);
        button.addActionListener(new ActionListener() { 
            public void actionPerformed(ActionEvent e) { 
                // 先验证输入是否为整数
                if (!checkInt(dayInput.getText())) {
                    JOptionPane.showMessageDialog(window, "请输入有效的整数天数");
                    return;
                }
                int days = Integer.parseInt(dayInput.getText());
                switch ((String) c1.getSelectedItem()){
                    case "Car":
                        // 汽车租金计算代码
                        break;
                    case "Truck":
                        // 卡车租金计算代码
                        break;
                    case "Bike":
                        // 自行车租金计算代码
                        break;
                }
            } 
          });

        window.setLayout(new FlowLayout());
        window.setVisible(true);
    }
}

额外优化说明

  • 把catch里的Exception改成NumberFormatException,避免捕获无关异常,逻辑更精准
  • 在按钮点击事件里加入了输入验证逻辑,调用checkInt()判断用户输入是否合法,提升交互体验

内容的提问来源于stack exchange,提问作者Aj Mammone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 08:28:15