龙空技术网

「学习」Java核心技术卷I-3.7 输入输出(1)

争渡一生 247

前言:

今天大家对“java语言打印一个表格怎么打”大概比较关注,看官们都想要了解一些“java语言打印一个表格怎么打”的相关内容。那么小编同时在网上搜集了一些关于“java语言打印一个表格怎么打””的相关知识,希望姐妹们能喜欢,看官们快快来了解一下吧!

为了增加后面示例程序的趣味性,需要程序能够接收输入,并以适当的格式输出。当然,现代的程序都使用GUI收集用户的输入,然而,编写这种界面的程序需要使用较多的工具与技术,目前还不具备这些条件。主要原因是需要熟悉Java程序设计语言,因此只要有简单的用于输入输出的控制台就可以了。第7章~第9章将详细地介绍GUI程序设计。

3.7.1 读取输入

前面已经看到,打印输出到"标准输出流"(即控制台窗口)是一件非常容易的事情,只要调用System.out.println即可。然而,读取"标准输入流"System.in就没有那么简单了。要想通过控制台进行输入,首先需要构造一个Scanner对象,并与"标准输入流"System.in关联。

Scanner in = new Scanner(System.in);

(构造器和new操作符将在第4章中详细地介绍。)

现在,就可以使用Scanner类的各种方法实现输入操作了。例如,nextLine方法将输入一行。

System.out.println("What is your name?");String name = in.nextLine();

在这里,使用nextLine方法是因为在输入行中有可能包含空格。要想读取一个单词(以空白符作为分隔符),就调用next()方法

String firstName = in.next();

要想读取一个整数,就调用nextInt方法。

System.out.println("How old are you?");int age = in.nextInt();

与此类似,要想读取下一个浮点数,就调用nextDouble方法。

在程序清单3-2的程序中,询问用户姓名和年龄,然后打印一条如下格式的消息:

Hello, Cay. Next year, you'll be 52

最后,在程序的最开始添加上一行:

import java.util.*

Scanner类定义在java.util包中。当使用的类不是定义在基本java.lang包中时,一定要使用import指示字将相应的包加载进来。有关包与import指示字的详细描述请参看第4章。

程序清单3-2 InputTest/InputTest.java

import java.util.Scanner;public class InputTest {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        //get first input        System.out.println("what is your name?");        String name = in.nextLine();        //get second input        System.out.println("How old are you?");        int age = in.nextInt();        //display output on console        System.out.println("Hello,"+ name +". Next year,you'll be "+ (age+1));    }}

注释:因为输入是可见的,所以Scanner类不适用于从控制台读取密码。Java SE 6特别引入了Console类实现这个目的。要想读取一个密码,可以采用下列代码:

Console cons = System.console();

String username = cons.readLine("User name: ");

char[] passwd = cons.readPassword("Password: ");

为了安全起见,返回的密码存放在一维字符数组中,而不是字符串中。在对密码进行处理之后,应该马上用一个填充覆盖数组元素(数组处理将在本章稍后介绍)。

采用Console对象处理输入不如采用Scanner方便。每次只能读取一行输入,而没有能够读取一个单词或一个数值的方法。

API java.util.Scanner 5.0

Scanner(InputStream in)

用给定的输入流创建一个Scanner对象。

String nextLine()

读取输入的下一行内容

String next()

读取输入的下一个单词(以空格作为分隔符)

int nextInt()double nextDouble()

读取并转换下一个表示整数或浮点数的字符序列。

boolean hasNext()

检测输入中是否还有其他单词。

boolean hasNextInt()boolean hasNextDouble()

检测是否还有表示整数或浮点数的下一个字符序列。

API java.lang.System 1.0

static Console console()

如果有可能进行交互操作,就通过控制台窗口为交互的用户返回一个Console对象,否则返回null。对于任何一个通过控制台窗口启动的程序,都可使用Console对象。否则,其可用性将与所使用的系统有关。

API java.io.Console 6.0

static char[] readPassword(String prompt, Object...args)static String readLine(String prompt, Object...args) 显示字符串prompt并且读取用户输入,直到输入行结束。args参数可以用来提供输入格式。有关这部分内容将在下一节中介绍。

关注

作者:争渡一生

链接:

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签: #java语言打印一个表格怎么打