zoukankan      html  css  js  c++  java
  • 6.1 与用户互动

    一、运行Java程序的参数

    main()方法的签名:
    //java 程序入口 public static void main(String[] args) { ...}
    1、public修饰符:为了让JVM可以自由调用这个main()方法
    2、static修饰符:让JVM调用这个主方法时,不会创建该类的对象。JVM直接通过类来调用主方法。
    3、void返回值:因为主方法被JVM调用,该方法的返回值返回给JVM没有任何意义,因此main()方法没有返回值。
    介绍形参列表:
    根据方法调用规则,谁调用它,谁为它赋值。即args参数应该由JVM指定。

    class ArgsTest 
    {
    	public static void main(String[] args) 
    	{
    		//输出args参数的长度
    		System.out.println(args.length);
    		//遍历args的每个数组元素
    		for(var arg:args)
    		{
    			System.out.println(arg);
    		}
    	}
    }
    

    运行该程序时,我们通过命令窗口来执行:

    E:Java第七章 Java基础类库7.1 用户用户互动>javac -d . ArgsTest.java
    E:Java第七章 Java基础类库7.1 用户用户互动>java ArgsTest Java good morning!
    3
    Java
    good
    morning!
    

    运行Java程序时参数与args数组之间的对应关系为:

    如果某参数本身包含空格,则应该使用双引号将它括起来,否则JVM会把这个空格当成分隔符,而不是参数本身。

    二、使用Scanner获取键盘输入

    使用Scanner类可以很方便地获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流、字符串中解析除基本类型和字符串型。
    Scanner类提供了多个构造器,不同构造器可以接受从文件、输入流、字符串作为数据源,用于从文件、输入流、字符串中解析数据。
    导包——>import java.util.Scanner;
    Scanner主要提供了两个方法来扫描输入:
    (1)hasNextXxx():是否还有下一个输入项,其中Xxx可以是Int、Long等代表数据类型的字符串。如果只是判断是否包含下一个字符串,则可以直接使用hasNext().
    (2)nextXxx():获取下一个输入项。Xxx的含义同上。

    2.1 从输入流接受数据接受字符串数据类型

    默认情况下,Scanner使用空白(包括空格" "、Tab空白" "、回车" ")作为多个输入项之间的分隔符。例如sc.useDelimiter("/n")
    例如:

    import java.util.Scanner;
    class ScannerKyrboardTest 
    {
    	public static void main(String[] args) 
    	{
    		//System.in代表标准输入,就是键盘输入
    		var sc=new Scanner(System.in);
    		//只把回车作为分隔符
    		sc.useDelimiter("
    ");
    		//判断是否还有下一个输入项
    		while(sc.hasNext())
    		{
    			System.out.println("键盘输入的内容为:"+sc.next());
    		}
    	}
    }
    good boys and grils!
    键盘输入的内容为:good boys and grils!
    Thank you very much!
    键盘输入的内容为:Thank you very much!
    

    scanner方法逐行读取:
    (1)boolean hasNextLine():返回输入源中是否还有下一行
    (2)String nextLine():返回输入源中下一行的字符串。
    例如下面程序的输入结构和上面相同:

    import java.util.Scanner;
    class ScannerKyrboardTest1 
    {
    	public static void main(String[] args) 
    	{
    		//System.in代表标准输入,就是键盘输入
    		var sc=new Scanner(System.in);
    		//只把回车作为分隔符
    		sc.useDelimiter("
    ");
    		//判断是否还有下一个输入项
    		while(sc.hasNextLine())
    		{
    			System.out.print("键盘输入的内容为:"+sc.nextLine()+"
    ");
    			
    		}
    	}
    }
    

    2.2 从输入流中获取基本数据类型

    import java.util.Scanner;
    public class ScannerDouble
    {
    	public static void main(String[] args)
    	{
    		var sc=new Scanner(System.in);
    		while(sc.hasNextDouble())
    		{
    			System.out.println("输入的double类型数据为:"+sc.nextDouble());
    		}
    	}
    }
    123
    输入的double类型数据为:123.0
    45.5
    输入的double类型数据为:45.5
    "123"
    

    2.3 从文件流中获取数据

    只要在创建Scanner对象中传入一个File对象作为参数,就可以让Scanner读取文件的内容:

    import java.util.Scanner;
    public class ScannerFileTest
    {
    	public static void main(String[] args)
    	{
    		Scanner sc=new Scanner(new File("ScannerFileTest.java"));
    		System.out.println("文件内容如下:");
    		while(sc.hasNextLine())
    		{
    			System.out.println(sc.nextLine());
    		}
    	}
    }
    ---------- 运行Java捕获输出窗 ----------
    文件内容如下:
    这是一个普通文本文件
    用于测试scanner读取文件流的功能
    看到这输出成功
    
    输出完成 (耗时 0 秒) - 正常终止
    
  • 相关阅读:
    Swift
    美国绿卡
    H-1-B签证简介
    托福、雅思和GRE的区别
    使用fdisk命令对linux硬盘进行操作
    Welcome to Workrave
    Installing patches on an ESXi 5.x by the command
    How to install VIB on VMware ESXi
    Robocopy用法
    Location of ESXi 5.1 log files
  • 原文地址:https://www.cnblogs.com/weststar/p/12461157.html
Copyright © 2011-2022 走看看