本文整理了 Java 基础学习的知识点,包括项目创建、控制台输出、输入操作、字符串操作及输入校验方法,适合初学者参考。

目录

1. 创建 Java 项目(IDEA)

2. Java 主函数结构

3. 接收用户输入

3.1 基本输入

3.2 多次输入

4. 字符串内容比较

4.1 equals 方法

4.2 空字符串判断

5. 循环输入校验

5.1 输入不为空

5.2 名字长度校验

5.3 判断是否包含空格

5.4 去除前后空格

6. 判断内容是否包含特定字符

7. 输入年龄校验

8. 万能输入校验模板

9. 把字符串变成整数

总结


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

  • 循环输入校验、正则表达式验证

掌握这些基础知识,可以轻松完成基础控制台程序开发,并为后续学习面向对象、集合和文件操作打下基础。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐