• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
_Java小菜盘
博客园    首页    新随笔    联系   管理    订阅  订阅
Scanner的使用

  Scanner可以实现从字符串、输入流和文件的读取,在构造时可以选择你需要的读取方式,常见的构造方法有如下3个:

  • Scanner(File source):构造一个新的 Scanner,它生成的值是从指定文件扫描的。
  • Scanner(InputStream source):构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。
  • Scanner(String source):构造一个新的 Scanner,它生成的值是从指定字符串扫描的。

下面列举的列子将以从字符串读取的方式进行:

(1)以空格作为分割符取得单词(Scanner默认的分割方式就是空格):

  输入:Hello World! I am coming.

  输出:Hello World!I am coming.

String txt = "Hello World! I am coming.";
Scanner scanner = new Scanner(txt);
while(scanner.hasNext()){
    System.out.print(scanner.next() + " ");
}

(2)取得每一个字符(包括空格):

  由于Scanner里不可以直接这样做,所以我们采用间接的方式。先把整个字符串从Scanner中取出来,转换为char数组后,再逐个处理。

  输入:Hello World! I am coming.

  输出:H e l l o ◊ W o r l d !◊ I ◊ a m ◊ c o m i n g .(我们以◊表示输出的空格符号)

String txt = "Hello World! I am coming.";
Scanner scanner = new Scanner(txt);
if(scanner.hasNextLine()){
    char[] ch = scanner.nextLine().toCharArray();
    for(int i = 0; i < ch.length; i++){
        System.out.println(ch[i]);
    }
}

    如果不需要空格,只需要在后面的代码里加入是否为空格的判断就可以了。

(3)以逗号作为分割符取得单词(通过正则表达式设置Scanner的分割符):

  输入:Hello,World,I,am,coming

  输出:Hello World I am coming

String txt = "Hello,World,I,am,coming";
Scanner scanner = new Scanner(txt);
scanner.useDelimiter("\\,");
while(scanner.hasNext()){
    System.out.print(scanner.next() + " ");
}

 

posted on 2015-08-14 10:20  _Java小菜盘  阅读(477)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3