小学生都能看懂的题解 | #反转字符串#
方案
这个程序的目的是把一个输入的字符串(比如“abcd”)反过来(变成“dcba”)。我们要做到这几点:
- 读取输入: 我们从用户那里获得一个字符串。
- 反转字符串: 我们把字符串里面的字母顺序反过来。
- 输出结果: 把反转后的字符串显示出来。
代码解释
-
导入工具:
import java.util.Scanner;
这行是为了使用一个工具,它可以让我们从键盘读取输入。 -
主程序:
public static void main(String[] args) { ... }
这是程序的开始,所有的代码都在这里面。 -
读取字符串:
Scanner scanner = new Scanner(System.in); String input = scanner.nextLine();
这两行代码的意思是,我们创建一个“扫描器”,它可以从键盘读取一行文字,然后把这行文字存到
input
这个变量里。 -
反转字符串:
String reversed = reverse(input);
这行代码调用了一个反转字符串的函数,
reverse(input)
。我们下面会详细介绍这个函数。 -
输出结果:
System.out.println(reversed);
这行代码把反转后的字符串打印到屏幕上。
反转字符串的函数
public static String reverse(String str) {
char[] chars = str.toCharArray(); // 把字符串变成一个字母数组
int n = chars.length; // 计算字母的数量
for (int i = 0; i < n / 2; i++) {
char temp = chars[i]; // 先保存第i个字母
chars[i] = chars[n - 1 - i]; // 把最后一个字母放到第i个位置
chars[n - 1 - i] = temp; // 把保存的字母放到最后一个位置
}
return new String(chars); // 把字母数组变回字符串
}
-
把字符串变成字母数组:
char[] chars = str.toCharArray();
这行把字符串的每个字母变成一个数组的元素,比如“abcd”变成['a', 'b', 'c', 'd']
。 -
计算字母数量:
int n = chars.length;
这行代码计算这个数组里有多少个字母。 -
反转过程:
for (int i = 0; i < n / 2; i++) { ... }
这段代码是个循环,它从数组的两头开始,直到中间为止。- 在每次循环里,我们用
temp
保存当前的字母,然后把数组头部的字母替换成尾部的字母,最后把temp
的值放到尾部。
-
返回结果: 最后,
return new String(chars);
这行代码把字母数组重新变成字符串并返回。
完整代码
import java.util.Scanner;
public class ReverseString {
public static String reverse(String str) {
char[] chars = str.toCharArray(); // 将字符串转为字符数组
int n = chars.length;
// 使用双指针反转字符数组
for (int i = 0; i < n / 2; i++) {
char temp = chars[i];
chars[i] = chars[n - 1 - i];
chars[n - 1 - i] = temp;
}
return new String(chars); // 将字符数组转回字符串
}
}
希望这篇文章对你有帮助👍。
#牛客创作赏金赛##题解#小学生都能看懂的算法 文章被收录于专栏
主要面向小白的算法文章。以小学生都能看懂为目标而编写,顺便巩固下自己。