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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王广彬 中级黑马   /  2012-8-3 22:35  /  1316 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在Scanner类,可以从键盘输入整型,实型,字符串,怎么找不到字符的输入方法?怎样从键盘输入字符?请各位大侠指点一下.

5 个回复

正序浏览
非要用Scanner接收字符的话,就用这个方法吧:new Scanner(System.in).next().charAt(0)
回复 使用道具 举报
本帖最后由 赵俊杰 于 2012-8-4 06:50 编辑

import java.util.Scanner;
/***
*
* 本人新手,对这些方法的底层实现过程不太了解,但根据楼主现在对system.in用法的需求,我觉得您"至少"可以这么干:
*
*
* 解决方法(一):
* 使用Scanner的next()方法;
* 官方API对next()方法的解释:      
* 查找并返回来自此扫描器的下一个完整标记。
* 经验:
*next()不能接收有空格的字符串(会将其截断),也不会接收回车;
* 举例:
* 输入"我爱     北京天安门",打印结果是"我爱";
*
* 解决方法(二):
* 使用Scanner的nextLine()方法;
* 官方API对nextLine()方法的解释:      
* 此扫描器执行当前行,并返回跳过的输入信息。
* 经验:
* nextLine()可以接收有空格的字符串,并且可以接收"回车";
* 举例:
* 输入"我爱     北京天安门",打印结果是"我爱北京天安门",按回车键结束当前输入后,您会发现,
* 回车符也被接收了进来,不信看光标是不是跑到了最后一行,因Enter键是回车符,所以才令起了一行;
*
* 解决方法(三):
* 使用老师推荐的键盘输入流格式。
* 解释:
* 因使用缓冲流,不仅可以完美解决您现在的需求,而且提高了效率。
* 举例:
* 输入"我爱     北京天安门",打印结果对于您现在的需求来说,应该非常完美。
*
* 具体代码如下:
*/

   
//方法(一)    
public class Test {
            
        public static void main(String[] args) throws Exception
        {
         Scanner scan=new Scanner(System.in);
         System.out.println(scan.next());
        }
}


//方法(二)
//public class Test {
//            
//      public static void main(String[] args) throws Exception
//      {
//       Scanner scan=new Scanner(System.in);
//       System.out.println(scan.nextLine());
//      }
//}

//方法(三)
//public class Test {
//    public static void main(String[] args) throws Exception
//    {
//     BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//     System.out.println(br.readLine());
//    }
//}

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 很给力!

查看全部评分

回复 使用道具 举报
建议楼主保持一个好习惯,也是好的学习方法,但不懂类时候,先查一下API,看一下构造函数,注意要传什么参数,再遍历一下该类的方法,像楼主提的问题,在API里面都有说的。
Scanner input = new Scanner(System.in) ;
变量input便有了 Scnner类中的方法,下面这些是列举的一些楼主需要用的了。
boolean nextBoolean()   扫描解释为一个布尔值的输入标记并返回该值。
byte nextByte()  将输入信息的下一个标记扫描为一个 byte。
byte nextByte(int radix)  将输入信息的下一个标记扫描为一个 byte。
double nextDouble()  将输入信息的下一个标记扫描为一个 double。
float nextFloat() 将输入信息的下一个标记扫描为一个 float。
int nextInt() 将输入信息的下一个标记扫描为一个 int。

希望能够对楼主有帮助~~
我觉得新手应该多看看API,我是新手,我

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 新人崛起,赞一个!

查看全部评分

回复 使用道具 举报
next() 就是
String next()  查找并返回来自此扫描器的下一个完整标记。
回复 使用道具 举报
一般开发中都是用流的, 用标准键盘输入流  BufferedReader  br = new BufferedReader(new InputStreamReader(System.in));这个好用  你那个我很少用 所以也不太清楚 嘿嘿
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马