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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李东城 中级黑马   /  2013-2-15 18:29  /  2287 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.itheima;

  2. import java.util.Scanner;

  3. public class ScannerDemo {

  4. public static void main(String[] args) {
  5. // String s = "aa,12,3.4";
  6. Scanner scanner = new Scanner(System.in).useDelimiter(",");

  7. System.out.println(scanner.next());
  8. System.out.println(scanner.nextInt());
  9. System.out.println(scanner.nextFloat());
  10. }
  11. }
复制代码
为什么我用s代替System.in就可以分割字符,而我用键盘录入却总是少1个呢?

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1 这个问题值得探讨..

查看全部评分

8 个回复

正序浏览
赵文 发表于 2013-2-15 18:58
貌似系统输入字符串切割,字符串末尾没,字符,最后一个根本没纳入到容器里去,所以切割的应该少了一个 ...

当使用默认的分隔符 '空格' 时就可以正确分割,而不会漏掉最后一个。。
回复 使用道具 举报
jonn 高级黑马 2013-2-15 19:00:42
8#
李东城 发表于 2013-2-15 18:51
那边帖子多,不好加分啊...  希望这边的版主还在...

哈哈,十届的版主不知道在哪儿工作呢,怎么有人给你加分呢?:lol
回复 使用道具 举报
jonn 高级黑马 2013-2-15 18:58:35
7#
李东城 发表于 2013-2-15 18:44
你就按上面给的字符串那样输入也不行,而直接用字符串就可以...

貌似系统输入字符串切割,字符串末尾没,字符,最后一个根本没纳入到容器里去,所以切割的应该少了一个
回复 使用道具 举报
李东城 发表于 2013-2-15 18:44
你就按上面给的字符串那样输入也不行,而直接用字符串就可以...

貌似系统输入字符串切割,字符串末尾没,字符,最后一个根本没纳入到容器里去,所以切割的应该少了一个
回复 使用道具 举报
赵文 发表于 2013-2-15 18:44
兄弟,帖子别发错地方了,请发在第 十七届 或 云2届

那边帖子多,不好加分啊...  希望这边的版主还在...
回复 使用道具 举报
兄弟,帖子别发错地方了,请发在第 十七届 或 云2届
回复 使用道具 举报
赵文 发表于 2013-2-15 18:42
我看输入的数据不符合格式要求会抛异常吧,最好对系统输入的字符在扫描的时候进行条件判断... ...

你就按上面给的字符串那样输入也不行,而直接用字符串就可以...
回复 使用道具 举报
我看输入的数据不符合格式要求会抛异常吧,最好对系统输入的字符在扫描的时候进行条件判断...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马