文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java——输入输出

2023-09-23 07:14

关注

本篇主要介绍Java的输入与输出,当然,这里说的是控制台下的输入与输出,窗口程序的设计将会再后续篇章中有详细说明。  

Java的输出很简单,调用System.out.println()即可打印输出你想要输出的内容。我们之前也已经看到过。调用println()方法时,会自动在后面加上换行符,如果不希望它加换行符的话,就要使用print()方法了,之后的打印输出会紧跟其后,而不是另起一行。另外,还有一个很常用的方法,那就是printf(),学过C或者C++的话,对这个printf()应该很熟悉,没错 ,在Java里几乎是一模一样的。可以用来格式化输出内容。第一个参数代表格式,格式中会有一个或者多个转换符,后续参数代表替换内容,用于替换转换符。说这么多也没用,直接上代码。

package pers.frank.test;

import java.util.Date;

public class Test{

    public static void main(String[] args) {

       

        // %s表示输出字符串,也就是将后面的字符串替换模式中的%s

        System.out.printf("%s", new Integer(1212));

        // %n表示换行

        System.out.printf("%s%n", "end line");

        // 还可以支持多个参数

        System.out.printf("%s = %s%n", "Name", "Zhangsan");

        // %S将字符串以大写形式输出

        System.out.printf("%S = %s%n", "Name", "Zhangsan");

        // 支持多个参数时,可以在%s之间插入变量编号,1$表示第一个字符串,3$表示第3个字符串

        System.out.printf("%1$s = %3$s %2$s%n", "Name", "san", "Zhang");

       

        System.out.printf("true = %b; false = ", true);

        System.out.printf("%b%n", false);

       

        Integer iObj = 342;

        // %d表示将整数格式化为10进制整数

        System.out.printf("%d; %d; %d%n", -500, 2343L, iObj);

        // %o表示将整数格式化为8进制整数

        System.out.printf("%o; %o; %o%n", -500, 2343L, iObj);

        // %x表示将整数格式化为16进制整数

        System.out.printf("%x; %x; %x%n", -500, 2343L, iObj);

        // %X表示将整数格式化为16进制整数,并且字母变成大写形式

        System.out.printf("%X; %X; %X%n", -500, 2343L, iObj);

       

        Double dObj = 45.6d;

        // %e表示以科学技术法输出浮点数

        System.out.printf("%e; %e; %e%n", -756.403f, 7464.232641d, dObj);

        // %E表示以科学技术法输出浮点数,并且为大写形式

        System.out.printf("%E; %E; %E%n", -756.403f, 7464.232641d, dObj);

        // %f表示以十进制格式化输出浮点数

        System.out.printf("%f; %f; %f%n", -756.403f, 7464.232641d, dObj);

        // 还可以限制小数点后的位数

        System.out.printf("%.1f; %.3f; %f%n", -756.403f, 7464.232641d, dObj);

       

        // %t表示格式化日期时间类型,%T是时间日期的大写形式,在%t之后用特定的字母表示不同的输出格式

        Date date = new Date();

        long dataL = date.getTime();

        // 格式化年月日

        // %t之后用y表示输出日期的年份(2位数的年,如99)

        // %t之后用m表示输出日期的月份,%t之后用d表示输出日期的日号

        System.out.printf("%1$ty-%1$tm-%1$td; %2$ty-%2$tm-%2$td%n", date, dataL);

        // %t之后用Y表示输出日期的年份(4位数的年),

        // %t之后用B表示输出日期的月份的完整名, %t之后用b表示输出日期的月份的简称

        System.out.printf("%1$tY-%1$tB-%1$td; %2$tY-%2$tb-%2$td%n", date, dataL);

        // 以下是常见的日期组合

        // %t之后用D表示以 "%tm/%td/%ty"格式化日期

        System.out.printf("%1$tD%n", date);

        //%t之后用F表示以"%tY-%tm-%td"格式化日期

        System.out.printf("%1$tF%n", date);

       

        // 输出时分秒

        // %t之后用H表示输出时间的时(24进制),%t之后用I表示输出时间的时(12进制),

        // %t之后用M表示输出时间的分,%t之后用S表示输出时间的秒

        System.out.printf("%1$tH:%1$tM:%1$tS; %2$tI:%2$tM:%2$tS%n", date, dataL);

        // %t之后用L表示输出时间的秒中的毫秒

        System.out.printf("%1$tH:%1$tM:%1$tS %1$tL%n", date);

        // %t之后p表示输出时间的上午或下午信息

        System.out.printf("%1$tH:%1$tM:%1$tS %1$tL %1$tp%n", date);

        // 以下是常见的时间组合

        // %t之后用R表示以"%tH:%tM"格式化时间

        System.out.printf("%1$tR%n", date);

        // %t之后用T表示以"%tH:%tM:%tS"格式化时间

        System.out.printf("%1$tT%n", date);

        // %t之后用r表示以"%tI:%tM:%tS %Tp"格式化时间

        System.out.printf("%1$tr%n", date);

       

        // %t之后用A表示得到星期几的全称

        System.out.printf("%1$tF %1$tA%n", date);

        // %t之后用a表示得到星期几的简称

        System.out.printf("%1$tF %1$ta%n", date);

        // 输出时间日期的完整信息

        System.out.printf("%1$tc%n", date);

    }

}

 

这里包括了大部分的输出格式,多码几次的话就会使用了。还是那句话,不需要全记住,只需要有一个概念,知道可以实现这样的效果,到时候要用了再来查一查也不迟,之后熟能生巧嘛。

 

String类型中,format方法的用法跟这完全一样,只是不会输出到控制台,而是处理字符串后用于后续代码中。

Java里的输入也不难,但是比输出要稍微麻烦一点,需要先构造一个Scanner对象,然后关联System.in、看代码:

package pers.frank.test;

import java.util.Scanner;

public class Test{

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        System.out.println("What's your name?");

        String name = in.nextLine();

        System.out.printf("Hello!%s!How old are you?",name);

        int age = in.nextInt();

        System.out.printf("So, you are %d years old.",age);

    }

}

当调用nextline()方法时,程序会暂停,直到你输入数据并按下回车键。然后把你输入的那一行数据作为结果返回。nextline读入的是一行字符串,而nextInt()方法则期待读入一个整数。如果输入的不是一个整数,就会报错。除了这两个方法以外,还有next()方法,读入一个单词。nextDouble(),读入一个浮点数,hasNext()判断输入中是否还有其他单词,hasNextInt() hasNextDouble() 判断释放还有表示整数或者浮点数。

除了从控制台读取输入之外,还可以从文件中读取。

Scanner in = new Scanner(Path.get("myfile.txt"));

如果文件名包含反斜杠,则需要在反斜杠之前再加一个额外的反斜杠:“c:\windows\text.txt”

如果文件不存在,则会创建文件,可以像输出到System.out一样使用print、println、以及printf方法。

来源地址:https://blog.csdn.net/m0_64363449/article/details/131863549

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯