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

酒店入住退房系统字符串用户输入获取及类型转换报错求助

问题分析与修复方案

嘿,我一眼就瞅出你代码里的问题啦!你的getInput()方法声明的返回类型是int,但你最后返回的是字符串类型的lastName——Java是强类型语言,这俩类型根本没法直接转换,所以编译器才会报错说不能把字符串转成整数。

具体修复步骤

1. 修正方法返回类型

既然你要获取的是用户输入的姓氏(字符串),那方法的返回类型得改成String才行,直接看修改后的代码:

import java.util.Scanner; 
public class Keyboard { 
    private Scanner input; 

    public Keyboard() { 
        input = new Scanner(System.in); 
    } 

    // 把返回类型从int改成String
    public String getInput() { 
        String lastName = input.nextLine(); 
        return lastName; 
    } 
}

2. 几个小优化建议

  • 我把lastName改成了方法里的局部变量,没必要把它作为类成员变量,除非你这个类里还有其他方法要用到这个值,这样代码更简洁。
  • 如果想让输入更严谨,可以加个非空检查,避免用户输入空字符串:
public String getInput() { 
    System.out.print("请输入您的姓氏:");
    String lastName = input.nextLine().trim();
    // 循环直到用户输入有效内容
    while(lastName.isEmpty()){
        System.out.println("姓氏不能为空哦,请重新输入:");
        lastName = input.nextLine().trim();
    }
    return lastName; 
}

这样改完之后,你的方法就能正常返回用户输入的姓氏字符串,不会再报类型转换的错误啦!

内容的提问来源于stack exchange,提问作者hey miki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:56:48