print() java_java的print,printf,println以及输入

2023-11-18

java中有三种方式向控制台输入信息,分别是print,printf,println,现在简单介绍一下他们之间的异同。

printf主要是继承了C语言的printf的一些特性,可以进行格式化输出

print就是一般的标准输出,但是不换行

println和print基本没什么差别,就是最后会换行

看一下他们的效果:

print:

4+4n+8ftuDhdnZ3AGAVr+o1DNMoZwEAe0SDA1HCAgB2eg0OhIUqRSsANMCpLQAwQbwCgAniFQBMEK8AYIJ4BQATxCsAmPgLLiyWg6VUXQMAAAAASUVORK5CYII=

结果:

c8AlqT996GwAAAABJRU5ErkJggg==

从结果中可以明显看到,print输出内容之后,不会换行,光标定到最后一个字符之后。

println:

cIAAAAAAAAAAAAAcF2PaZqm6Z3689FhOAA38+ffmLsIxwB8VriCeRGIAQAAAAAAAAAAAAAAAAAAAAAAAE7vP1cFY1C1ZRUDAAAAAElFTkSuQmCC

结果:

3YKUgTcuVTOxJiiPw8ThhxnmJIwJxbGWJnweh7FG3bdu7U0Cz8aEBnOPXu58nvq14Zx74ZP8AljP1+H4Qd8IAAAAASUVORK5CYII=

可以看到,每次执行完println之后,光标都会自动定位到下一行。

看看《Head First Java》怎样区别它们的?

8HL3i3vgUbVroAAAAASUVORK5CYII=

还是很好区分的。

如果你学过c语言,对printf应该很是了解啦,我在这里再重复一遍。

什么是格式化输出呢?格式化输出就是向指定的地方(如:屏幕)输出指定格式的内容。

不同的语言对数据的格式化的表达形式稍微有点差别,java中一些数据的格式化形式:

'd' 整数 结果被格式化为十进制整数

'o' 整数 结果被格式化为八进制整数

'x', 'X' 整数 结果被格式化为十六进制整数

'e', 'E' 浮点 结果被格式化为用计算机科学记数法表示的十进制数

'f' 浮点 结果被格式化为十进制数

'g', 'G' 浮点 根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。

'a', 'A' 浮点 结果被格式化为带有效位数和指数的十六进制浮点数

第一种的颜色是之适用整形,红色只适应浮点型,我为什么说这个呢?在c语言中能自动强制类型转换,所以,类型不对,程序也能正常运行,但在java中,类型不对程序就不能运行。我会在后边举例的。

再给从c语言阵营的一个小提醒:float 数据后必须跟 “f”,否则java会把数据看成double类型。

t10IhHlpzBQAAAABJRU5ErkJggg==

举几个具体的例子展示一下java的各种格式化的输出:

1 public classTest{2 public static voidmain(String[] args) {3 int i = 10;4 float f = 10.0f;5 double d = 10.0;6 System.out.printf("%d %#o %#x \n", i, i, i);//你可以去掉#号试试效果

7 System.out.printf("%e %f %g %a \n", f, f, f,f);8 System.out.printf("%e %f %g %a \n", d, d, d,d);9 }10 }

看看效果:

BKQUCDZVxY4AAAAASUVORK5CYII=

下边举个错误的例子:

1 public classTest{2 public static voidmain(String[] args) {3 int i = 10;4 System.out.printf("%e \n",i);5 }6 }

看看会出现什么错误:

A8uLQ6X+C06eQAAAABJRU5ErkJggg==

不合法类型转换异常,所以,写程序时要对号入座啊。

print, printf, println就说这么多啦,下边介绍一下从从控制台输入数据的方式,以后会在IO输入/输出时再详细介绍java的输入。

输出我们用的是System.out,那么又没有System.in呢?哈哈,有是有,但System.in只能获取字节,我们要想获得数字和字符串直接调用System.in是不能实现的,如果可以,你可以自己写个类封装一下System.in,实现获取数字与字符串的接口。你可能已经想到啦,java已经提供了这样的类:Scanner,你可以通过Scanner对象获取各种数据。

1 importjava.util.Scanner;2 public classTest{3 public static voidmain(String[] args) {4 Scanner s = new Scanner(System.in);//System.in作为Scanner构造函数的参数

5 System.out.println(s.nextLine());//nextLine获取输入的数据直到遇见回车键,回车键也会接受

6 System.out.println("over");7 }8 }

0W3F+MxyUsazgnLHCRx6O07gkDIIHFIGgUPKIHBIGQQOKYPAIWUQOKQMAoeUQeCQMggcUgaBQ8ogcEgZBA4pg8D5H2PAKw7DnfcLAAAAAElFTkSuQmCC

一定要注意那个注释部分回车键也会接受,否则会进入到一个小坑里呦,举个例子:

importjava.util.Scanner;public classTest{public static voidmain(String[] args) {

Scanner s= new Scanner(System.in);//System.in作为Scanner构造函数的参数

int i =s.nextInt();

System.out.println(i);

System.out.println("please input a word:");//输入一个单词

String str =s.nextLine();

System.out.println(str);

System.out.println("over");

}

}

看结果:

0XikWfnuznC3IAAAAASUVORK5CYII=没有输入单词程序就结束啦,为什么呢?当你输入“100”数字时,敲回车结束,nextInt()函数不会接受回车键,但nextLine会接受缓存区里的数据和回车键,此时缓存区有个回车键,所以nextLine()接收了回车键,如果缓存区是空的会让你输入内容,所以,你应该明白了为什么你没有输入程序就结束了的原因了吧。

好啦,今天就写这么多。

我很想用心打造精品,但限于知识和语言表达能力,其中必有很多不足,望大家海涵啊。

2Q==

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

print() java_java的print,printf,println以及输入 的相关文章

  • C语言getchar()函数:从控制台读取字符并立即回显

    头文件 include
  • 数据结构选择题

    1 数据元素及其关系在计算机存储器内的表示 称为数据的 B A 逻辑结构 B 存储结构 C 线性结构 D 非线性结构 2 某带头结点的单链表的头指针为 head 判定该链表为非空的条件是 B A headNULL B head gt nex
  • eclipse安装tomcat插件

    现在我只想说 我x你ma tmd 老子费了一下午 才他妈知道是怎么回事儿 原来是需要往eclipse了安装一个tomcat插件 害得我迷迷糊糊的搞了一下午 下班了都才搞明白 1 先下载一个tomcat插件 地址 http www eclip
  • 快速换线流程图_生产线快速切换的七大技巧

    SMED Single Minute Exchange of Die 一分钟即时换模 通常叫快速换模 也叫快速换产 是一种快速和有效的作业切换方法 这一概念指出 所有的转变或者启动都能够并且应该少于10分钟 因此才有了单分钟这一说法 所以又
  • python关键知识点

    1 变量 在程序中存储值或对象的名称 2 数据类型 指变量的数据类型 例如 str int float list tuple dict set 等 3 操作符 表示运算符号 例如加号 和减号 4 循环 通过重复执行某个代码块来实现多次操作的
  • 学习React与Next.js过程中的疑惑

    学习React与Next js过程中的疑惑 1 为什么React中函数作为props的时候 会出现无限调用的情况 而把函数放在箭头函数中就可以解决呢 2 next js与node js有什么区别 3 什么是快速刷新 4 Hooks出现的原因
  • IVTC/Deinterlace的来龙去脉

    IVTC Deinterlace的来龙去脉 1 胶片电影 曝光率为24帧 秒的progressive video 连续完整帧图像序列 它由无数个感光晶体 35mm可达5000 5000 实现图像曝光 而人眼在35mm的区域内能分辨的最大极限
  • 三句话,我让R语言自动升级了

    R语言是为数学研究工作者设计的一种数学编程语言 主要用于统计分析 绘图 数据挖掘 跟所有计算机语言一样 R语言也面临升级的问题 本文讲述了最快捷的升级R语言办法 不用重新安装之前的安装包 首先 进入R交互模式 然后三条命令搞定 instal
  • 抖音小程序开发教学系列(5)- 抖音小程序数据交互

    第五章 抖音小程序数据交互 5 1 抖音小程序的网络请求 5 1 1 抖音小程序的网络请求方式和API介绍 5 1 2 抖音小程序的数据请求示例和错误处理方法 5 2 抖音小程序的数据缓存和本地存储 5 2 1 抖音小程序的数据缓存机制和使
  • 交流电机绕组的分相

    交流电机绕组的分相 考虑到目前大多数伺服电机厂商已经逐渐使用集中式绕组进行制造 本文将以集中式绕组12槽10极电机为例简要介绍交流电机绕组的分相方法 即60 相带槽电势星形图方法1 槽电势星形图 当电机被带动旋转时 对于集中式绕组而言 每一
  • 穿越火线河北一区服务器位置,【 C F 史上最全的各大区“兵服”地址!】...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 电 信 区 四川二区 团队1 频道2 浙江二区 团队2 频道2 江西一区 团队1 频道2 高手1 频道10 广西一区 高手1 频道7 爆满 上海一区 爆破1 频道8 9 10 11 爆满 南方大
  • [LeetCode]大于给定和最短子数组

    对于数组的操作 在算法实现中 可以考虑三种思想 阵地攻守 例题https blog csdn net fmuma article details 79858876 指针碰撞 例题https blog csdn net fmuma artic
  • AD 常见绿色报错的消除

    TM 可以复位绿色错误 在这个里面 关闭所有报错 只打开电器里面的所有报错 23 PCB板框的评估及叠层设置 对PCB板框进行评估 1 全选器件 2 如果设置了快捷键但是没有起作用 右键单击上方菜单栏 如上图所示 然后找到更改的快捷键 删除
  • UE4 关于使用Webbrowser插件遇到的问题以及解决办法

    1 无法播放网页视频 这是因为UE4的WebBrowser自带的cef3为3071版本 默认不支持h364等直播流 导致web里的直播流无法播放 解决办法 第一种办法 重新编译了cef源码 改成支持H 264 然后在UE4安装目录下替换相关
  • 目标检测入坑指南3:VGGNet神经网络

    学了蛮久的目标检测了 但是有好多细节总是忘或者模棱两可 感觉有必要写博客记录一下学习笔记和一些心得 既可以加深印象又可以方便他人 博客内容集成自各大学习资源 所以图片也就不加水印了 需要自取 本专栏会详细记录本人在研究目标检测过程中的所学所
  • Flutter android及ios强制竖屏/横屏

    Flutter android及ios强制竖屏 横屏 在main dart内设置即可 在main dart内设置即可 void main WidgetsFlutterBinding ensureInitialized 不加这个强制横 竖屏会
  • Java:jdk-12.0.2安装教程(很全的哦)

    Java是一门综合性的编程语言 从最初设计时就综合考虑了嵌入式系统以及企业平台的开发支持 所以在实际的Java开发过程中 其主要有3种开发方向 分别为Java SE 其最早被称为J2SE Java EE 其最早被称为J2EE Java ME
  • Web移动端-touch事件

    一 引入 在一个项目demo中 实现单指触控卡片的向任意方向的拖动效果 网上没有现成的插件 所以只好原生js来写 产品要求需要禁止掉多点触控 这个过程很让人头疼 试了很多方法 都不太实现 后来仔细研究 测试了一下移动端的三个常用事件 二 事
  • Web前端——Javascript复习(数组)

    1 数组 1 程序 数据结构 算法 一个好的数据结构 可极大提高程序的执行效率 相关的多个数据应集中存储 管理 分类和排序 2 数组概念 一组连续的变量组成的集合 批量管理多个数据 创建 2 1 var 变量名 2 2 var 变量名 值1

随机推荐

  • 【Github相关】在GitHub上 git clone代码失败,显示:“ithub.com port 443: 连接超时“

    有时候 使用git clone 指令下载代码时显示显示 ithub com port 443 连接超时 可以使用gitclone加速 官网URL https gitclone com 官方描述 有下面三种方式可以使用 方法一 替换URL g
  • c语言 栈头文件,C语言——栈(Stack)

    源码 方式一 头文件 ifndef STACK H define STACK H struct node typedef struct node stack 判断栈是否为空 int isEmpty stack s create stack
  • linux修改静态ip方法&&如何使用xshell连接

    ifconfig查看本地ip和网卡信息 cd到目录 etc sysconfig network scripts 想修改那块网卡就vi他 例如修改eth0 这样eth0的网卡就修改完毕 退出vi进行网络重启 service network r
  • LVGL 控件之(Arc)弧图形绘制

    一 弧形组成 弧图形由背景弧和前景弧组成 它们有各自的起始角度和结束角度 二 控件函数使用 设置背景弧度的函数 lv arc set bg angles arc start angle end angle 或者用 lv arc set bg
  • Thymeleaf表达式

    1 标准变量表达式 th text 需要在属性里面填写 例如 用户编号 span span br 用户姓名 span span br 用户年龄 span span br 2 选择变量表达式 星号表达式 不推荐 必须使用th object属性
  • Java学习笔记 --- 布尔类型

    一 布尔类型 1 布尔类型也叫boolean类型 boolean类型数据只允许取值true和false 无null public class Bool public static void main String args boolean
  • 测试触控延时的软件,重点测试:触控屏响应时间_笔记本评测-中关村在线

    重点测试 触控屏响应时间 触控型笔记本除了有一块触控屏外 传感器及控制IC部分是十分重要的 整套电路设计优劣会直接会影响到触控的响应时间 下面就来进行实际测试 为了这个环节我们特意找到了一套专业的滑轨设备 精准性是本次测试的重点指标 由于滑
  • JavaBean与XML相互转换

    一 JavaBean注解 1 XmlRootElement 类级别注解 name属性用于指定生成元素的名字 若不指定 默认使用类名小写作为元素名 XmlRootElement name mystudent XmlRootElement pu
  • Nginx的X-Accel-Redirect实现大文件下载

    一 文件下载的几种方式 1 直接给出下载地址 使用静态文件服务器nginx下载 任何人都可以下载 无法控制用户的权限 2 后端流式读取文件内容 设置header后疯狂输出 django文档中提到 可以向HttpResponse传递一个迭代器
  • 蓝桥杯算法训练VIP-传球游戏

    题目 题目链接 题解 动态规划 这个题不能用DFS 用DFS的小朋友趁早放弃 输入数据为30 30时 输出为155117522 这就意味着要是dfs的话 需要搜到底155117522次 光遍历这么多次都会超时更别说深搜了 所以只能动归 也算
  • SpringMVC注解

    注解大全 请求注解 名称 类型 位置 作用 注意点 RequestMapping save 方法注解 SpringMVC控制器方法定义上方 设置当前控制器方法请求访问路径 如果设置在类上统一设置当前控制器方法请求访问路径前缀 路径不能重复
  • cmake脚本中的list

    代码 cmake minimum required VERSION 2 8 set mylist a list APPEND mylist b c MESSAGE mylist MESSAGE mylist foreach componen
  • 适用于 Windows 11/1 0电脑的 8 款最佳免费数据恢复软件

    在这个数字办公时代 我们总是在电脑前工作 处理海量数据 存储重要文件 然而 系统崩溃 病毒攻击或人为错误都会导致极度绝望的数据丢失 此时 专业的数据备份和恢复工具就是不幸者的救命稻草 因此 这篇文章将向您介绍适用于Windows 11 10
  • sqlloader的使用------Linux版

    其实Linux中sqlloader的操作和在windows中的操作是一样的 下面我再为大家详细地讲解一下 一 注意事项 首先要注意下面的情形 我是在虚拟机中运行的Linux系统 关于在Linux系统中root用户下多次执行sqlldr 都是
  • LSP协议被劫持导致不能上网

    故障现象 最近有同事电脑浏览器打不开网页 DNS没问题 外网地址可以PING通 本地连接显示正常 登陆QQ显示网络连接超时 打开浏览器不能显示网页 网络丢包率达到了100 本地连接数据包收到为0 查杀木马 病毒也不能解决问题 原因分析 Wi
  • 接1.1 Python语言概述

    1 1 3 Python2和Python3 初学Python的读者 在打开Python官方网站 https www python org 下载Python时 总会看到有两个可供下载的版本 python2 7和Python3 X 从版本号上来
  • Django拼接queryset

    querysets one queryset two queryset
  • _MSC_VER

    MSC VER是微软的预编译控制 MSC VER可以分解为 MS Microsoft的简写 C C编译器 VER Version的简写 MSC VER的意思就是 Microsoft的C编译器的版本 微软不同时期 编译器有不同的版本 MS V
  • upload-labs靶场-Pass-02关-思路以及过程

    开始前的小准备 upload labs靶场 是PHP环境运行的 所以我准备了一个PHP脚本和一张图片 图片好准备 PHP脚本如果不想写的话可以用我的这个获取当前时间的PHP脚本 图片默认不清楚放大看 Pass 02需要了解的信息 点击提示可
  • print() java_java的print,printf,println以及输入

    java中有三种方式向控制台输入信息 分别是print printf println 现在简单介绍一下他们之间的异同 printf主要是继承了C语言的printf的一些特性 可以进行格式化输出 print就是一般的标准输出 但是不换行 pr