我的目的是定义一个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; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录