前言
通过 3 道入门实战题,提炼 Java 高频语法知识点,避开新手常见坑,聚焦「输入处理」「字符串操作」「数组遍历」核心逻辑,适合入门者快速掌握!
一、核心语法知识点(真题对应)
1. Scanner 输入处理(必学必用)
核心语法
- nextInt():读取整数,不消耗换行符
- nextLine():读取整行字符串(含空格)
- 读取单个字符:next().charAt(0)(Scanner 无nextChar()方法)
关键坑点 & 解决方案
// 错误:nextInt()后直接读字符串,会读取空串
int n = scanner.nextInt();
String s = scanner.nextLine(); // 踩坑!
// 正确:加一行消耗换行符
int n = scanner.nextInt();
scanner.nextLine(); // 关键:消去残留换行符
String s = scanner.nextLine(); // 正常读取
2. 字符串操作(核心特性 + 用法)
核心语法
| 语法 | 作用 | 注意点 |
|---|---|---|
| str.length() | 获取字符串长度 | 与数组arr.length(无括号)区分 |
| str.charAt(index) | 提取指定索引字符 | 索引从 0 开始 |
| str.toCharArray() | 转为字符数组(可变) | String 本身不可修改 |
| new String(char[]) | 字符数组转回字符串 | 修改后必须转回才能输出 |
| str.split(" ") | 按分隔符分割字符串成数组 | 如空格分割单词 |
实战代码
// 字符串修改标准流程
String s = "wxhak";
char[] arr = s.toCharArray(); // 转数组(可变)
arr[2] = 'x'; // 修改指定位置字符
String res = new String(arr); // 转回字符串
3. 数组 & 区间遍历(题目高频场景)
核心语法
- 增强 for 循环:for (String word : words)(遍历数组 / 集合)
- 区间转换:题目 1 开头区间 → 数组 0 开头(start = l-1,end = r-1)
- 闭区间遍历:for (int j = start; j j++)(不遗漏最后一个元素)
实战代码
// 题目区间[3,5] → 数组索引[2,4]
int l = 3, r = 5;
int start = l - 1, end = r - 1;
for (int j = start; j ++) { // 闭区间遍历
System.out.println(arr[j]);
}
4. 字符串拼接优化
- 推荐用StringBuilder(可变字符序列),避免String +=(频繁创建对象)
StringBuilder sb = new StringBuilder();
sb.append('A'); // 拼接字符
sb.append("BC"); // 拼接字符串
System.out.println(sb.toString()); // 输出ABC
二、实战案例(精简版,聚焦语法)
案例 1:字符串区间替换(输入 + 字符串修改)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(), m = scanner.nextInt();
scanner.nextLine(); // 消换行符
char[] arr = scanner.nextLine().toCharArray(); // 转数组
for (int i = 0; i {
int l = scanner.nextInt(), r = scanner.nextInt();
char c1 = scanner.next().charAt(0), c2 = scanner.next().charAt(0);
int start = l - 1, end = r - 1; // 区间转换
for (int j = start; j ; j++) {
if (arr[j] == c1) arr[j] = c2; // 替换逻辑
}
}
System.out.println(new String(arr));
scanner.close();
}
}
案例 2:字符串首字母简写(分割 + 拼接)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
scanner.close();
String[] words = input.split(" "); // 分割单词
StringBuilder sb = new StringBuilder();
for (String word : words) {
char upper = Character.toUpperCase(word.charAt(0)); // 首字母转大写
sb.append(upper);
}
System.out.println(sb);
}
}
三、核心知识点速记
- 输入:nextInt()后必加nextLine(),读字符用next().charAt(0);
- 字符串:不可修改,转char[]操作,拼接用StringBuilder;
- 区间:1→0 索引转换,闭区间遍历用 `j ;
- 规范:Scanner 用完关闭,变量命名见名知意。
四、新手避坑清单
✅ 不直接用nextInt()接nextLine();
✅ 不调用Scanner.nextChar();
✅ 不忽略索引转换(1→0);
✅ 不用j 区间;
✅ 不用String +=` 大量拼接。
总结
Java 入门核心是吃透「基础语法 + 实战场景」,以上知识点覆盖 80% 入门编程题,重点掌握输入处理、字符串修改、区间遍历的标准流程,就能举一反三。建议多动手敲代码,把语法融入场景记忆更牢固~
你在学习中还踩过哪些语法坑?欢迎评论区分享!