Java 入门学习笔记1:Scanner 输入、字符串处理与校验
本文整理了 Java 基础学习的知识点,包括项目创建、控制台输出、输入操作、字符串操作及输入校验方法,适合初学者参考。
目录
1. 创建 Java 项目(IDEA)
普通Java项目(一般用于基础语法学习,目的是在控台输出)
1)打开 IntelliJ IDEA,点击:File → New → Project...

2)选择 JDK(选择自己安装的 JDK 位置),点击 Next

3)再次点击 Next

4)输入项目名称,如:javaDay01,并选择存放路径(如:IdeaProjects 文件夹)。点击 Finsh,点击 Create。


5)在 src 下创建三级包(如:com.yyr.demo),点击 src → New → Package


接着创建 Java 类(类名首字母大写,如 Main),点击 demo → New → Java Class

选择 Class ,输入 Main


IDEA 三级包名显示为连在一起时,可以通过设置取消:
点击齿轮按钮 → 取消勾选 Compact Middle Packages。


2. Java 主函数结构
public class Main {
public static void main(String[] args) { //主函数是固定格式的,jvm识别
} //{ }:方法体,写你要执行的代码
}
3个关键字:
-
public:表示 main函数是公共的,可以被其他类访问的
-
static:表示 main函数是静态的,可以直接通过类名调用(不用创建对象也能执行,Java程序启动时就是靠它)
-
void:表示 main函数不返回任何值,即为空
方法名称:
-
main:主函数名称(固定的!不能改!)
函数的参数:
-
String[] args:表示 main函数接受一个字符串数组作为参数
输出一句话,如:Hellow World!

System.out.println(...):输出到控制台
3. 接收用户输入
3.1 基本输入
import java.util.Scanner; //1.先导包
public class InputDemo {
public static void main(String[] args) {
//2.再在main里写
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = sc.nextLine();
System.out.println(username);
}
}
说明:
1)Scanner:输入工具类,用于读取键盘输入,意思是:我要创建一个“Scanner类型”的变量
2)sc:变量名,可自定义。只是“名字”,没特殊含义。如:
Scanner input = new Scanner(System.in);
Scanner abc = new Scanner(System.in);
3)new Scanner(System.in):创建 Scanner 对象
⚠️ 注意:
String sc = new Scanner(System.in); // ❌左边是 String,右边是 Scanner,类型不匹配,会报错。
4)sc.nextLine():从键盘读取一整行输入(包括空格)。next() → 读一个单词(遇到空格就停)
5)System.in:表示标准输入流(键盘)。System 是 Java自带的一个类(系统类)
3.2 多次输入
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的名字:");
String yourName = sc.nextLine();
System.out.println("请输入你的年龄:");
String yourAge = sc.nextLine();
-
每调用一次 sc.nextLine() 就读取一行输入。第一次 nextLine → 读名字,第二次 nextLine → 读年龄。
-
可以重复使用同一个 Scanner 对象(同一个 Scanner 可以读很多次)
4. 字符串内容比较
4.1 equals 方法
equals 是“比较两个东西内容是否一样”的方法
字符串1.equals(字符串2)
👉 返回值是:true → 一样; false → 不一样
String a = "hello";
String b = "hello";
String c = "world";
System.out.println(a.equals(b)); // true
System.out.println(a.equals(c)); // false
System.out.println(b.equals(c)); // false
-
a.equals(b):比较内容是否相同
-
a == b:比较对象(内存)地址,通常不适合比较字符串内容
String a = new String("Hello");
String b = new String("Hello");
System.out.println(a == b); // false
System.out.println(a.equals(b)); // true
new String → 每次都创建新对象(内存地址不同),但创建的内容 "hello" 是一样的
4.2 空字符串判断
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = sc.nextLine();
if(username.equals("")) { //相当于在判断:username 和 "" 内容一样吗?
System.out.println("你啥都没输入");
} else {
System.out.println("你输入了:" + username);
}
当你什么都不输入,直接按 回车 ,实际结果:username = ""(空字符串,有东西)
而当 username == null 时,会直接报错(空指针异常)
⚠️ 空指针异常示例:
String username = null; username.equals(""); // 会报错 //null 没有方法可以调用。 //null:什么都没有(连对象都不是)防御性编程:
if(username == null || username.equals("")) { ... }
5. 循环输入校验
5.1 输入不为空
//如果名字为空,就重新输入(循环)
Scanner input = new Scanner(System.in);
String name = "";
while("".equals(name)) {
System.out.println("请输入你的名字:");
name = input.nextLine();
}
System.out.println("你叫:" + name);
万能模板:
while (输入不合法) {
提示用户
重新输入
}
5.2 名字长度校验
//如果名字为空,就重新输入(循环)
//在这个基础上再加:
//名字不能为空
//长度不能小于2
Scanner input = new Scanner(System.in);
String name = "";
while(name == null || name.length() < 2){
System.out.println("请输入你的名字(至少2个字符,请重新输入):");
name = input.nextLine();
}
System.out.println("你叫:" + name);
5.3 判断是否包含空格
contains 是 String(字符串)的一个方法,用于判断一个字符串中是否包含某个内容。用法如下:
字符串.contains(子字符串)
返回:true → 包含 ; false → 不包含
if(name.contains(" ")) {
System.out.println("名字不能包含空格");
}
5.4 去除前后空格
if(name.trim().equals("")) {
System.out.println("输入为空");
}
trim():去掉字符串前后空格,内部空格不去掉
//示例1
name = " "
name.equals("") //false
name.trim().equals("") //true
//示例2
String s = "Tom Lee";
System.out.println(s.trim());//输出结果:Tom Lee
6. 判断内容是否包含特定字符
//输入一句话,判断这句话里面是否包含”java“
Scanner input = new Scanner(System.in);
System.out.println("请输入一句话:");
String sentence = input.nextLine();
if(sentence.contains("java")){
System.out.println("这句话提到了 java");
} else {
System.out.println("这句话没有提到 java");
}
-
contains 用于判断字符串中是否包含某个子串
name.contains("a") //判断是否包含某个字母
sentence.contains("Java") //判断是否包含某个词
email.contains("@") //判断邮箱是否包含 @
7. 输入年龄校验
要求:必须为数字,且 ≥ 18
//限制输入年龄:必须是数字,必须 ≥ 18
Scanner input = new Scanner(System.in);
System.out.println("请输入年龄:");
String age = input.nextLine();
while(!age.matches("\\d+") || Integer.parseInt(age) < 18) {
System.out.println("年龄必须是数字,且 ≥ 18,请重新输入:");
age = input.nextLine();
}
System.out.println("年龄为:" + age);
说明:反斜杠 \ 是转义字符,要表示正则表达式中 \d ,需要在字符串中写成 "\\d"
-
\d:数字 0~9
-
+:一个或多个
-
\d+:表示由 1 个或多个数字组成
-
matches:判断字符串是否符合正则表达式
-
Integer.parseInt(age):将字符串转换为整数
System.out.println("123".matches("\\d+")); //true
System.out.println("abc".matches("\\d+")); //false
System.out.println("123abc".matches("\\d+")); //false
拓展: . 表示:任意字符, * 表示:0个或多个, .*\\d.* 表示“只要包含一个数字就行”
8. 万能输入校验模板
先输入一次
while(输入不合法) {
提示用户
重新输入
// 确保条件可变为 false
}
9. 把字符串变成整数
Integer.parseInt(age) //把字符串变成整数
//例如:
String age = "18";
int num = Integer.parseInt(age);
总结
本文总结了 Java 入门常用操作:
-
Java 项目创建及包结构
-
主函数固定格式
-
控制台输入输出(Scanner)
-
字符串比较、trim、contains
-
循环输入校验、正则表达式验证
掌握这些基础知识,可以轻松完成基础控制台程序开发,并为后续学习面向对象、集合和文件操作打下基础。
更多推荐




所有评论(0)