我的目的是定义一个char类型,然后输入一个字符,判断与Y或N是否相等,我用int类型输入强制转换成char会报错,用next或者nextline又报错如何解决
java中scanner输入问题
我的目的是定义一个char类型,然后输入一个字符,判断与Y或N是否相等,我用int类型输入强制转换成char会报错,用next或者nextline又报错如何解决
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- a5156520 2023-03-13 09:33关注
可以在next()后面增加一个charAt(0)获取输入的第一个字符即可,另外如果需要向其他方法传递注册信息,可以把存放注册信息的String数组放在main方法,然后向其他方法传递这个String数组和可以当前可以存储注册信息的下标。
修改如下:
参考链接:https://blog.csdn.net/weixin_62079735/article/details/128920895import java.util.Scanner; public class RegisterTest { public static void main(String[] args) { // TODO Auto-generated method stub String [] h = new String[100]; // 第一次注册,传入h数组,当前可以存储注册信息的下标len=0 int len=0; int newLen=register(h,len); // 使用newLen存放最新可以存储注册信息的下标,以便后面打印和再次注册 //System.out.println("newLen="+newLen); System.out.println("注册信息为:"); for(int i=0;i<newLen;i+=2) { System.out.println("姓名:"+h[i]+",密码:"+h[i+1]); } // 第二次注册,传入h数组,当前可以存储注册信息的下标newLen,并再次获取返回的可以存储注册信息的下标,以便后面打印 newLen=register(h,newLen); //System.out.println("newLen="+newLen); System.out.println("注册信息为:"); for(int i=0;i<newLen;i+=2) { System.out.println("姓名:"+h[i]+",密码:"+h[i+1]); } } public static int register(String[] h,int len) { int i=len; //System.out.println("i="+i); Scanner sc = new Scanner(System.in); while(i<h.length-1) { System.out.println("姓名:"); h[i] = sc.next(); System.out.println("密码:"); h[i+1]=sc.next(); System.out.println("是否继续注册?Y/N"); char m ; // https://blog.csdn.net/weixin_62079735/article/details/128920895 m = sc.next().charAt(0); i+=2; // System.out.println("i="+i); // System.out.println("m="+m); if(m=='Y') { continue; }else { ///= sc.close(); // System.out.println("i-2="+(i-2)); return i; } } //sc.close(); return i; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度