读书笔记——输入输出数据

输入基本型数据

Scanner scanner = new Scanner(System.in);

①scanner.next();        //  next()方法是只读取一个字符串。

②scanner.nextLine();      //  nextLine()方法是只读取一行。

③scanner,nextInt();       //  除此之外,nextFloat()方法是只读取一个浮点类型的输入,nextInt()方法是只读取一个整型数值。

上述方法在执行时都会发生阻塞,程序等待用户在命令行输入数据并按Enter键确认。

按顺序举栗子:

 1 /*
 2   该类是next()方法输入输出测试
 3 */
 4 import java.util.Scanner;
 5 
 6 public class ScannerExc{
 7     public static void main(String args[]){
 8         System.out.println("请输入:");
 9             Scanner scanner = new Scanner(System.in);
10             String apps = "";
11             while(scanner.hasNext()){//最后需要按Ctrl+Z结束输入
12                 String app = scanner.next();
13                 apps += app;  //拼接字符串不建议这么写
14             }
15             System.out.println(apps);
16     }
17 }

       

next()方法可以获取任意有效字符,返回值得类型是String。

默认情况下,scanner以空格和换行作为分隔符(空格,TAB键,Enter键),所以不会获得带有空格的字符串。

 1 /*
 2   该类是nextInt()方法输入输出测试
 3 */
 4 import java.util.Scanner;
 5 
 6 public class ScannerExc{
 7     public static void main(String args[]){
 8         System.out.println("请输入若干个整型数据:");
 9             Scanner scanner = new Scanner(System.in);
10             int app = scanner.nextInt();
11             int apps = 0;
12             while(app!=0){//最后需要输入0结束输出
13                 apps += app;//拼接字符串不建议这么写
14                 app = scanner.nextInt();
15             }
16             System.out.println("总和是:"+apps);
17     }
18 }

     

nextInt(),nextFloat()这类nextXxx()方法可以获得相应的基本类型数据的输入,返回值类型是相应的基本类型。

 1 /*
 2   该类是nextLine()方法输入输出测试
 3 */
 4 import java.util.Scanner;
 5 
 6 public class ScannerExc{
 7     public static void main(String args[]){
 8         System.out.println("请输入:");
 9         Scanner scanner = new Scanner(System.in);
10         String apps = "";
11         while(scanner.hasNext()){//最后需要按Ctrl+Z结束输入
12             String app = scanner.nextLine();
13             apps += app;//拼接字符串不建议这么写
14         }
15         System.out.println(apps);
16     }
17 }

  

nextLine()方法是一行一行读取,可以读取空格和TAB键,返回值的类型是String。

PS:代码中拼接字符串不建议这么写的原因是性能太差。推荐两篇关于字符串拼接方式性能比较的博客:

https://www.cnblogs.com/Faith-zhang/p/6374834.html

https://www.cnblogs.com/wxmdevelop/p/5182286.html

 输出基本型数据

System.out.println()或System.out.print()可输出串值、表达式的值,两者的区别是前者输出数据后换行,后者不换行。

该方法允许使用并置符号“+”将变量、表达式或一个常数值与一个字符串并置在一起输出,例如:

System.out.println("总和是"+apps);

需要注意的是,输出字符串常量时,不可以出现“回车”,以下的写法是错误的:

System.out.println("你总是心太软

            心太软");

如果字符串长度较长,可以将字符串分解成几部分:

System.out.println("你总是心太软"+

            "心太软");

另外,JDK1.5以后新增了和C语言printf函数类似的数据输出方法:

System.out.printf("格式控制部分",表达式1,表达式2);

System.out.printf("%d,%f",12,23.78);

格式控制部分由格式控制符号%d,%c,%f,%s和普通字符组成,普通字符原样输出,格式符号用来输出表达式的值。

  • %d:输出int型数据值
  • %c:输出char型数据
  • %f:输出浮点型数据,小数部分最多保留6位
  • %s:输出字符串数据

在输出数据时也可以控制数据在命令行中的位置。

  • %md:输出的int型数据占m列
  • %m.nf:输出的浮点型数据占m列,小数点保留n位
 1 /*
 2   该类是printf()方法输入输出测试
 3 */
 4 import java.util.Scanner;
 5 
 6 public class ScannerExc{
 7     public static void main(String args[]){
 8         System.out.println("请输入:");
 9         Scanner scanner = new Scanner(System.in);
10         String apps = "";
11         while(scanner.hasNext()){//!scanner.hasNext("0")
12             String app = scanner.nextLine();
13             apps += app;
14         }
15         System.out.printf("你刚刚输入了%s。",apps);
16     }
17 }

猜你喜欢

转载自www.cnblogs.com/huangchengzhi/p/9157832.html