📅  最后修改于: 2023-12-03 14:52:57.084000             🧑  作者: Mango
在 Java 中,我们通常可以使用内置的函数来反转字符串,例如使用 StringBuilder
或 StringBuffer
类的 reverse()
方法。但是,如果没有这些内置的函数,我们该怎么做呢?
下面介绍两种不使用内置函数的方法来反转字符串。
1.先将字符串转换为字符数组
String str = "Hello";
char[] charArray = str.toCharArray();
2.创建一个新的字符数组,长度与原数组相同
char[] reversedArray = new char[charArray.length];
3.将原字符数组中的字符从尾部开始依次存放到新数组中
for(int i=0; i<charArray.length; i++){
reversedArray[i] = charArray[charArray.length-1-i];
}
4.将新的字符数组转换为字符串
String reversedStr = new String(reversedArray);
完整代码如下:
String str = "Hello";
char[] charArray = str.toCharArray();
char[] reversedArray = new char[charArray.length];
for(int i=0; i<charArray.length; i++){
reversedArray[i] = charArray[charArray.length-1-i];
}
String reversedStr = new String(reversedArray);
System.out.println(reversedStr); //输出olleH
1.将字符串转换为字符数组
String str = "Hello";
char[] charArray = str.toCharArray();
2.定义两个变量 start
和 end
,分别指向数组的第一个字符和最后一个字符
int start = 0;
int end = charArray.length-1;
3.不断交换 start
和 end
指向的字符,并分别向中间移动,直到 start
和 end
相遇
while(start < end){
char tmp = charArray[start];
charArray[start] = charArray[end];
charArray[end] = tmp;
start++;
end--;
}
4.将字符数组转换为字符串
String reversedStr = new String(charArray);
完整代码如下:
String str = "Hello";
char[] charArray = str.toCharArray();
int start = 0;
int end = charArray.length-1;
while(start < end){
char tmp = charArray[start];
charArray[start] = charArray[end];
charArray[end] = tmp;
start++;
end--;
}
String reversedStr = new String(charArray);
System.out.println(reversedStr); //输出olleH
以上两种方法都可以在没有函数的情况下反转字符串,但性能上可能不如使用内置函数。