java 控制台判断下一次是否是回车(之前回车过)

Fifth Memo 2019-06-27 11:28:10
Scanner sc=new Scanner(System.in);
String str1=sc.next();
System.out.println(str1);
System.out.println("若想更改str1的值请直接写,若不更改直接回车");


下面应该怎么写?如果用sc.nextLine()它好像直接读取了我之前的那个回车直接跳过了下一次输入环节
...全文
240 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fifth Memo 2019-06-28
  • 打赏
  • 举报
回复
引用 8 楼 qq_39936465 的回复:
scanner只有nextline,readline是IO流用的,性质差不多,抱歉前面的有错不能用!=要用equals,修正一下

public class test2 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String str1;
String s=in.nextLine();
do {
str1=s;
System.out.println(str1);
System.out.println("若想更改str1的值请直接写,若不更改直接回车");
}while(!(s=in.nextLine()).equals(""));
in.close();
}

}


测试结果;

111
111
若想更改str1的值请直接写,若不更改直接回车
222
222
若想更改str1的值请直接写,若不更改直接回车



感谢 解决了 之前一直只使用一个in.nextLine 原来是要俩个
qq_39936465 2019-06-28
  • 打赏
  • 举报
回复
scanner只有nextline,readline是IO流用的,性质差不多,抱歉前面的有错不能用!=要用equals,修正一下

public class test2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String str1;
		String s=in.nextLine();
		do {
			str1=s;
			System.out.println(str1);
			System.out.println("若想更改str1的值请直接写,若不更改直接回车");
		}while(!(s=in.nextLine()).equals(""));
		in.close();
	}

}

测试结果;

111
111
若想更改str1的值请直接写,若不更改直接回车
222
222
若想更改str1的值请直接写,若不更改直接回车

Fifth Memo 2019-06-28
  • 打赏
  • 举报
回复
引用 6 楼 qq_39936465 的回复:

public class test2 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String str1=in.nextLine();
do {
System.out.println(str1);
System.out.println("若想更改str1的值请直接写,若不更改直接回车");
}while((str1=in.nextLine())!="");

}

}



老师说是用readLine 还没时间尝试,不过in.nextLine()不行 昨晚试了很多,好像是会之前读取之前的回车
qq_39936465 2019-06-28
  • 打赏
  • 举报
回复

public class test2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String str1=in.nextLine();
		do {
			System.out.println(str1);
			System.out.println("若想更改str1的值请直接写,若不更改直接回车");
		}while((str1=in.nextLine())!="");

	}

}
qq_39936465 2019-06-28
  • 打赏
  • 举报
回复
readline不输入内容直接回车为空,判断是否为空就行了。
qq_39936465 2019-06-28
  • 打赏
  • 举报
回复
引用 3 楼 Fifth Memo 的回复:
老师要求了不修改信息直接回车 昨晚试了半个多小时 写的 但是这个方法如果第一个是中文第一个字会乱码,英文没问题,一楼的还没尝试,等晚上试试
我觉得你老师应该是让你用readLine不修改就回车就行了。应该不会提议让你判断吧。
Fifth Memo 2019-06-28
  • 打赏
  • 举报
回复
老师要求了不修改信息直接回车
昨晚试了半个多小时 写的
//监测回车
String nbname="";
int entry=0;
try {
entry = System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
if(entry!=13) {
nbname=(char)entry+sc.next();
b.setBook_name(nbname);
}
但是这个方法如果第一个是中文第一个字会乱码,英文没问题,一楼的还没尝试,等晚上试试
qq_39936465 2019-06-28
  • 打赏
  • 举报
回复
引用 楼主 Fifth Memo 的回复:
Scanner sc=new Scanner(System.in); String str1=sc.next(); System.out.println(str1); System.out.println("若想更改str1的值请直接写,若不更改直接回车"); 下面应该怎么写?如果用sc.nextLine()它好像直接读取了我之前的那个回车直接跳过了下一次输入环节
我觉得与其要判断是否是回车,scanner情况下要判断回车比较麻烦,不如直接添加是否确定,输入“yes”or“no"来判断,no重新输入。道路千万条,有简单的可以走简单的方法。
「已注销」 2019-06-28
  • 打赏
  • 举报
回复
if(keycode == KeyEvent.KeyEvent.VK_ENTER)

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧