how2j.cn


工具版本兼容问题
截至目前为止,学习了使用System.out.println("") 向控制台输出数据。

在接下来的练习中,需要用到从控制台输入数据,所以需要用到Scanner类


本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



6分8秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



步骤 1 : 使用Scanner读取整数   
步骤 2 : 使用Scanner读取浮点数   
步骤 3 : 使用Scanner读取字符串   
步骤 4 : 读取了整数后,接着读取字符串   

步骤 1 :

使用Scanner读取整数

注意: 使用Scanner类,需要在最前面加上

import java.util.Scanner;

表示导入这个类,才能够正常使用
使用Scanner读取整数
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); int a = s.nextInt(); System.out.println("第一个整数:"+a); int b = s.nextInt(); System.out.println("第二个整数:"+b); } }
import java.util.Scanner;

public class HelloWorld {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int a = s.nextInt();
		System.out.println("第一个整数:"+a);
		int b = s.nextInt();
		System.out.println("第二个整数:"+b);
	}
}
步骤 2 :

使用Scanner读取浮点数

使用Scanner读取浮点数
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); float a = s.nextFloat(); System.out.println("读取的浮点数的值是:"+a); } }
import java.util.Scanner;
 
public class HelloWorld {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        float a = s.nextFloat();
        System.out.println("读取的浮点数的值是:"+a);

    }
}
步骤 3 :

使用Scanner读取字符串

使用Scanner读取字符串
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); String a = s.nextLine(); System.out.println("读取的字符串是:"+a); } }
import java.util.Scanner;
 
public class HelloWorld {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String a = s.nextLine();
        System.out.println("读取的字符串是:"+a);
    }
}
步骤 4 :

读取了整数后,接着读取字符串

需要注意的是,如果在通过nextInt()读取了整数后,再接着读取字符串,读出来的是回车换行:"\r\n",因为nextInt仅仅读取数字信息,而不会读取回车换行"\r\n".

所以,如果在业务上需要读取了整数后,接着读取字符串,那么就应该连续执行两次nextLine(),第一次是取走回车换行,第二次才是读取真正的字符串
读取了整数后,接着读取字符串
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); int i = s.nextInt(); System.out.println("读取的整数是"+ i); String rn = s.nextLine(); String a = s.nextLine(); System.out.println("读取的字符串是:"+a); } }
import java.util.Scanner;
  
public class HelloWorld {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int i = s.nextInt();
        System.out.println("读取的整数是"+ i);
        String rn = s.nextLine();
        String a = s.nextLine();
        System.out.println("读取的字符串是:"+a);
    }
}


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2019-01-22 交作业
木吉吉



交作业
import java.util.Scanner;

public class Oil {
	public static void main(String[] args){
		Scanner a = new Scanner(System.in);
		Scanner i = new Scanner(System.in);
		Scanner k = new Scanner(System.in);
		Scanner j = new Scanner(System.in);
		Scanner o = new Scanner(System.in);
		System.out.println("请依次输入周一至周五的跑单数");
		int z = a.nextInt();
		int l = i.nextInt();
		int e = k.nextInt();
		int c = j.nextInt();
		int m = o.nextInt();
		int g = (z+l+e+c+m)<30?5000:6000;
		System.out.println("根据考核条例,实际应发工资:"+g);
		
	}

}

							





回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-12-15 交作业 2018-12-15
ConanLEE



Scanner作业
package basis;

import java.util.Scanner;

public class Test{
	
	//记得要写在主方法里
	public static void main(String[]args) {
		@SuppressWarnings("resource")
		//记得要导入包:import java.util.Scanner;
		Scanner s = new Scanner(System.in);
		
		//s。nextInt()整数
		int a = s.nextInt();
		System.out.println("读取的整数的值是:" + a);
		
		//s.nextFloat()浮点数
		float b = s.nextFloat();
		System.out.println("读取的浮点数的值是:" + b);
		
		
		//s.nextLine()字符串
		String c = s.nextLine();
		//第一次是取走回车换行,第二次才是读取真正的字符串
		String d = s.nextLine();
		System.out.println("读取的字符串是:" + d);
		
		
	}
	
}

							


1 个答案

onlycode 答案时间:2018-12-27



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-12-14 不能读取字符串
2018-12-13 字符串的输入的不同是什么
2018-10-02 BMI交作业
2018-08-05 命名不能关闭?
2018-08-04 请问我为什么取不出值呢
2018-07-23 连续输入两个数字(中间空格)后输出为什么是这样的?
2018-07-12 jse basic hello world
2018-06-11 这个是什么意思
2018-05-14 为什么next可以直接读取呀 next跟nextline有什么区别呀
2018-05-09 控制台没输出,啥都没
2018-04-25 提示的的“resocuce leak 's': is never closed”
2018-04-10 Scanner使用出错,报The constructor consoleinput(InputStream) is undefined?
2018-03-26 eclipse版本更新后需要连续三个nextLine才可以实现换行读取字符串
2018-03-26 为什么这么代码输入float数字后面紧接输入字符串才能现实字符串
2018-03-07 关于\n会录入的个人理解
2018-02-06 请问这行代码中的System.in是什么含义?
2017-12-25 我要输入一个不确定的数据类型,然后进行判断,怎么弄呢?
2017-11-18 申明的Scanner 用不了怎么办?
2017-11-18 老师为什么他不执行啊,也没报错啊?
2017-11-14 老师 请问一下 一开始不是取数字吗 我知道next line会读取回车换行 但是回车换行哪来的呢?
2017-11-10 只使用一次s.nextLine(),第一次输入数据后,在数字和字符直接用空格作为分界,仍然能够分别读出数字和字符。请问空格是否是scanner读取数据结束的标志?
2017-11-03 总共需要几个nextLine呢?
2017-10-22 现在理解为什么需要连续输入两次且rn要在a的前面了
2017-10-16 函数问题
2017-10-09 老师,我还是有点理解不了~
2017-09-15 正常输入的字符串 末尾的回车换行读没读进去
2017-09-09 使用Scanner读取整数,失败
2017-09-09 使用Scanner读取整数,失败
2017-08-26 我只录了一次nextLine(),为什么也能显示
2017-08-07 资源泄漏:从来没有关闭?
2017-06-18 只能读两次吗?
2017-02-24 请问可以使用Scanner读取char类型的数据吗?




提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 基础-操作符-Scanner 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 902680467
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图