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公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-02-06 请问这行代码中的System.in是什么含义?
JessePinkman



请问这行代码中的System.in是什么含义?
Scanner s = new Scanner(System.in);

							


1 个答案

SuperMario 答案时间:2018-02-10
键盘输入




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-12-25 我要输入一个不确定的数据类型,然后进行判断,怎么弄呢?
WriteFace



我想输入一个数,然后用条件判断语句输出结果,进行数据类型的判断。但是看课程里讲的,在使用输入语句之前,它的数据类型都是确定的。怎么弄呢?
import java.util.Scanner;
class InputData {
	public static void main(String[] args)
	{
		{
		System.out.println("请输入:");
		Scanner input=new Scanner(System.in);
		if('0'<=input |'9'>=input);
		{System.out.println("zhe shi yi ge shu zi");}
		else if('A'<=input & input<='Z' | 'a'<=input $ input<='z');
		{System.out.println("zhe shi yi ge zi mu");}
		else 
		{System.out.println("zhe shi zi fu");}
		}
	}
F:\java>javac PanDuan.java
PanDuan.java:6: 错误: 编码 GBK 的不可映射字符 (0xA5)
                System.out.println("璇疯緭鍏?:");
                                        ^
PanDuan.java:10: 错误: 需要')'
                else if('A'<=input & input<='Z' | 'a'<=input $ input<='z');
                                                            ^
PanDuan.java:10: 错误: 需要';'
                else if('A'<=input & input<='Z' | 'a'<=input $ input<='z');
                                                                    ^
PanDuan.java:10: 错误: 此处不允许使用变量声明
                else if('A'<=input & input<='Z' | 'a'<=input $ input<='z');
                                                               ^
PanDuan.java:10: 错误: 有 'if', 但是没有 'else'
                else if('A'<=input & input<='Z' | 'a'<=input $ input<='z');
                ^
PanDuan.java:12: 错误: 有 'if', 但是没有 'else'
                else
                ^
PanDuan.java:15: 错误: 进行解析时已到达文件结尾
        }
         ^
7 个错误




2 个答案

48632584zn 答案时间:2018-01-08
import java.util.Scanner; //可以判断输入的一个字符是什么类型,如果输入的是字符串,则值判断第一个字符的类型。 public class test1 { public static void main(String[] args){ System.out.println("请输入:"); Scanner input=new Scanner(System.in); String xc = input.next(); char c = xc.charAt(0); if('0'<=c &'9'>=c) System.out.println("this is numble"); else if('A'<=c & c<='Z' || 'a'<=c & c<='z') System.out.println("this is letter"); else System.out.println("It's a supplementary charactor"); } }

ikonon 答案时间:2017-12-26
判断字母使用ascII码值判断 例如: 0~9 是 48~57 a~z 是 97~122 A~Z 是 65~90




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





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群交流: 389538688
站长会在每个工作日早上尽量回答提问(如果有漏掉没有回答的,请进群提醒一下)
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
站长是玻璃心,提问的时候请语气温柔些 kiss~
截止2017-5-19日累计提问 1638个,站长回答了 1546个
截止2017-8-15日累计提问 2788个,站长回答了 2544个

上传截图