A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiayoutianxia 中级黑马   /  2014-9-20 11:48  /  1951 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xiayoutianxia 于 2014-10-12 15:54 编辑

看到好多代码里都用Scanner,这个视频里貌似没有?
求讲解

17 个回复

倒序浏览
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
比如:让用户用键盘输入数字:
     Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();
让用户用键盘输入一个字符串:
     Scanner sc = new Scanner(System.in);
     String str = sc.nextLine();
...
回复 使用道具 举报
Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象. Scanner reader=new Scanner(System.in);  然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型: next.Byte(),nextDouble(),nextFloat,nextInt(),nextLin(),nextLong(),nextShot()  上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。
回复 使用道具 举报
Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.
Scanner reader=new Scanner(System.in);
然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型: next.Byte(),nextDouble(),nextFloat,nextInt(),nextLin(),nextLong(),nextShot()
上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。
具体可以参考:
  1. http://blog.csdn.net/pkbilly/article/details/3068912
复制代码
回复 使用道具 举报
学习了~~
回复 使用道具 举报
yueyazhishang 发表于 2014-9-21 09:32
Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.
Scanner reader=new Scanner(System.in);
然后re ...

长知识了!
回复 使用道具 举报

:),一起学习一起进步。
回复 使用道具 举报
解释的很清楚,在这学习了
回复 使用道具 举报
恩,楼上说的很好,扫描器还可以使用不同的分隔符。写了个Dome 测试了下,下面是从一个字符串读取若干项的例子:
  String input = "1 a 2 b";
        Scanner s = new Scanner(input).useDelimiter(" ");
        System.out.println(s.nextInt());
        System.out.println(s.next());
        System.out.println(s.nextInt());
        s.close();

输出

1
a
2


有两种模式:
useDelimiter(Pattern pattern)  扫描器的分隔模式设置为指定模式。
useDelimiter(String pattern)    扫描器的分隔模式设置为从指定 String 构造的模式。
回复 使用道具 举报
yueyazhishang 发表于 2014-9-21 09:31
Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象. Scanner reader=new Scanner(System.in);  然后re ...

这些知识在哪里找到的?
回复 使用道具 举报
xiayoutianxia 发表于 2014-9-23 09:10
这些知识在哪里找到的?

我不是贴上链接了吗?
回复 使用道具 举报
哦,原来如此啊,
回复 使用道具 举报
yueyazhishang 发表于 2014-9-23 09:14
我不是贴上链接了吗?

我是说其他的扩展知识
回复 使用道具 举报 1 0
可以查阅Api了解具体用法
回复 使用道具 举报
说的不错,谢谢分享
回复 使用道具 举报
知道了些。学习了
回复 使用道具 举报

package cn.itcast;

import java.util.Scanner;

/*
* Scanner
* 1、导包
* 2、创建对象
* 3、调用方法接受键盘录入信息,使用信息(给某个变量赋值)
*
*
* nextInt() 将输入的内容转换成整数
* nextDouble()
* nextFloat()
* next() 查找并返回来自此扫描器的下一个完整标记。
* nextLine() 此扫描器执行当前行,并返回跳过的输入信息。
*
* */
public class Demo {

        public static void main(String[] args) {
       
                Scanner scanner = new Scanner(System.in);
                //int nextInt = scanner.nextInt();
                //System.out.println(nextInt);
               
//                当连续输入时,使用next,会出现bug,需要鼠标往下移一行
//                如果先nextLine再next,则第二次无法输入
//                如果先nextInt再使用NextLine,则第二次无法输入
               
//                int nextInt = scanner.nextInt();
//                System.out.println("请输入nextLine方法返回的字符串");
                String nextLine = scanner.nextLine();
               
//                System.out.println("请输入next方法返回的字符串");
//                String next = scanner.next();
               
//                System.out.println(nextInt);
                System.out.println(nextLine);
//                System.out.println(next);
                scanner.close();
        }
}
自己去试试几种情况吧
回复 使用道具 举报
xiayoutianxia 发表于 2014-9-23 09:10
这些知识在哪里找到的?

网上资源很多,还有就是多做题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马