Scanner类、String类、StringBuffer类

1、Scanner类

当程序需要从键盘获取用户输入的命令或数据时,可以通过Scanner类方便地获取用户输入。

通过Scanner类获取用户输入时,控制台会一直等待用户的输入,直到用户敲回车键结束,把所输入的内容传给Scanner,程序要从Scanner获取输入的内容,则只需要调用Scanner的方法即可。

● Scanner类的初始化:

Scanner  scanner = new  Scanner(System.in);

声明一个scanner变量,并用new运算符实例化Scanner,实例化Scanner时,需要传入System.in对象,Scanner通过传入的System.in获取用户输入,并对用户输入的字符进行处理,屏蔽了获取用户输入的复杂操作。

● 示例:从键盘获取用户的输入

 1 public class ScannerDemo {
 2     public static void main(String[] args) {
 3         int num = Su.getNum();
 4         System.out.println("输出结果:" + num);
 5     }
 6     
 7 }
 8 
 9 class Su{
10     private static Scanner sc = null;
11     private Su(){
12         
13     }
14     static{
15         sc = new Scanner(System.in);
16     }
17     public static int getNum(){
18         int i = 0;
19         while(true){
20             System.out.println("请输入一个数字:");
21             if(sc.hasNextInt()){
22                 i = sc.nextInt();
23                 break;
24             }else{
25                 sc = new Scanner(System.in);//为了阻塞住程序
26                 System.out.println("你输入的不正确,请重新输入");
27             }
28         }
29         return i;
30     }
31     
32 }

 

2、String 类

● String 类内存图解:

String s = new String("hello");创建了几个对象?
创建了两个对象,一个在常量池,一个在堆内存。

 

3、StringBuffer 类

StringBuffer 的 capacity()方法会自动扩充容量,默认16

● 示例:实现字符串的反转(通过 StringBuffer 和 String 相互转换)

 1     public static void main(String[] args) {
 2         String s = "abcdefg";
 3         StringBuffer sb = new StringBuffer(s);
 4         System.out.println(sb);
 5         StringBuffer sbr = sb.reverse();
 6         String string = sbr.toString();
 7         char[] charArray = string.toCharArray();
 8         for(char c : charArray){
 9             System.out.print(c);
10         }
11     }

● 结果:abcdefg

      gfedcba

 

posted @ 2018-11-26 18:38  FanYiZhan  阅读(364)  评论(0编辑  收藏  举报