酒店入住退房系统字符串用户输入获取及类型转换报错求助
问题分析与修复方案
嘿,我一眼就瞅出你代码里的问题啦!你的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
相关产品推荐
相关产品推荐

