👋 你好,欢迎来到我的博客!我是【菜鸟不学编程】
我是一个正在奋斗中的职场码农,步入职场多年,正在从“小码农”慢慢成长为有深度、有思考的技术人。在这条不断进阶的路上,我决定记录下自己的学习与成长过程,也希望通过博客结识更多志同道合的朋友。
🛠️ 主要方向包括 Java 基础、Spring 全家桶、数据库优化、项目实战等,也会分享一些踩坑经历与面试复盘,希望能为还在迷茫中的你提供一些参考。
💡 我相信:写作是一种思考的过程,分享是一种进步的方式。
如果你和我一样热爱技术、热爱成长,欢迎关注我,一起交流进步!
全文目录:
🤔 前言
嘿,兄弟姐妹们,今天我们来聊聊 Java 中最常用的两个“输入输出(I/O)神器”——Scanner 和 System.out。没错,你可能平时就直接用 Scanner
输入个数据,输出个结果,结果一搞就是万年“Hello World”,但是——你真的了解这些操作背后的“套路”吗?
我们先不急着写代码,先来讨论一下这个问题:输入输出,它到底有多重要?你可以不懂数据库,也能写程序;可以不懂多线程,也能写程序,但如果你不懂怎么处理用户输入和程序输出,那就像个盒子没盖上,掉了!用户怎么跟你的程序互动呢?没有输入输出,那程序就是“死”的。
📝先聊聊 System.out:让程序给人“回话”
你一定对 System.out
这个东西耳熟能详了,对吧?毕竟咱们在 Java 中最常见的输出操作就是用它:
System.out.println("Hello, World!");
它像个话筒,站在程序的“舞台”上,把程序的“心声”输出到控制台,让用户能够看到。
但你知道吗,System.out
是“全能选手”,它不仅能让你输出文本,还能输出各种数据类型!例如:
int age = 30;
double price = 99.99;
System.out.println("年龄: " + age);
System.out.println("商品价格: " + price);
输出:
年龄: 30
商品价格: 99.99
看到了吧,它不仅能帮你打印字符串,还能把变量的值一并打印出来,简直是个输出“千面神”。
🌟【小技巧】:
有时候,我们想输出不换行。怎么办?来,System.out.print
送给你:
System.out.print("年龄: ");
System.out.print(age);
结果:
年龄: 30
这样就不再换行!很适合在一行输出多个内容的时候。
🎤Scanner:让用户输入也变得酷炫!
让我们来聊聊 Scanner
——这个能让用户输入内容的超级助手。你没看错,它不仅能从控制台获取输入,还是多功能输入工具,能读取字符串、数字、日期等各种类型的数据!
🚀如何使用 Scanner?
首先,记得要导入 Scanner
类:
import java.util.Scanner;
然后,你就能用它读取用户输入的内容了!
🧑💻代码示例:基本输入
import java.util.Scanner;
public class InputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入整数
System.out.print("请输入年龄:");
int age = scanner.nextInt();
// 输入字符串
System.out.print("请输入名字:");
String name = scanner.next();
System.out.println("你输入的名字是:" + name + ",年龄是:" + age);
scanner.close(); // 记得关闭扫描器!
}
}
💥看个效果:
请输入年龄:25
请输入名字:Tom
你输入的名字是:Tom,年龄是:25
上面的代码,你输入了25
和Tom
,然后程序自动接收并打印输出!超爽!
🧠【小知识】:
nextInt()
用来接收整数。next()
用来接收一个单词(没有空格)。- 如果你想接收包含空格的整个字符串,可以使用
nextLine()
方法:
System.out.println("请输入你的地址:");
String address = scanner.nextLine(); // 获取整行
🧐Scanner的坑,你踩过没?
你以为**Scanner
**一直这么“完美”?别忘了,它也有一些需要注意的小细节:
⚠️坑1:nextInt() + nextLine() 组合,坑坑坑
有很多小伙伴遇到过这个问题:nextInt()
读取一个数字后,再接 nextLine()
时,总是会“跳过”输入,导致程序读不到输入。这是因为 nextInt()
会留下换行符(\n
)没吃掉,导致 nextLine()
直接吃掉了这个换行符!
🛠️解决方法:
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
scanner.nextLine(); // 吃掉上次留下的换行符
String str = scanner.nextLine();
⚠️坑2:关闭Scanner的时机
关闭 Scanner
对象(scanner.close()
)时,一定要小心。因为如果你在 System.in
上关闭了它,程序后续可能无法再进行输入操作。只要用完了 Scanner
,关掉它就好,别在“最前面”就关掉。
💡总结:输入输出大法好!
工具 | 用法 | 优点 | 注意事项 |
---|---|---|---|
System.out | 用于输出数据到控制台 | 简单易用,直接输出 | println() 输出换行,print() 不换行 |
Scanner | 用于从用户输入中获取数据 | 可以读取多种类型的数据 | 使用 nextLine() 处理空格,合理关闭 Scanner |
🧙♂️结尾话:“你用对Scanner和System.out了吗?”
说实话,很多初学者学了好多Java语法,却从没真正理解过输入输出的基本操作,直到遇到问题才懵了。所以,今天我想提醒大家:
掌握输入输出,是每个开发者走向高阶的第一步!
你不懂输入输出怎么去和用户互动?怎么获取数据?那你写的程序只会是一堆孤独的代码!你还会继续用 System.out.println("Hello World")
这类死板的方式吗?
别忘了,你是程序的“发言人”,Scanner 和 System.out 才是你和世界沟通的桥梁!
💬 想要深入了解更多的Java I/O技巧,或者你在实际使用中遇到的输入输出问题,评论区打个“👨💻”,我来帮你解答!
如果你觉得这篇文章对你有帮助,或者有任何想法、建议,欢迎在评论区留言交流!你的每一个点赞 👍、收藏 ⭐、关注 ❤️,都是我持续更新的最大动力!
我是一个在代码世界里不断摸索的小码农,愿我们都能在成长的路上越走越远,越学越强!
感谢你的阅读,我们下篇文章再见~👋