使用for循环,如何反转字符串?
Using for loops, how to reverse a string?
此代码无效。你能告诉我哪里出了问题吗?为什么?
package exer0403e08;
public class EXER0403E08 {
public static void main(String[] args) {
String str= "hello";
System.out.println(str);
char[]strchar = str.toCharArray();
int first;
int last=5;
System.out.println("The reversed is: ");
for (first=1; first<=5; first++){
strchar[first]=strchar[last];
last--;
}
str=String.valueOf(strchar);
str=str.toUpperCase();
System.out.println(str);
}
}
答案是"OLLO",我想做到"OLLEH"。
你的循环有几个问题。你误解了数组索引。
您正在迭代和修改同一个数组。因此,奇怪的行为和索引将从数组的零开始。
所以固定代码将是
public static void main(String[] args) {
String str = "hello";
System.out.println(str);
char[] strchar = str.toCharArray();
int first;
int last = 4;
System.out.println("The reversed is: ");
for (first = 0; first < 5; first++) {
strchar[first] = str.charAt(last);
last--;
}
str = String.valueOf(strchar);
str = str.toUpperCase();
System.out.println(str);
}
更新:
演示 link http://ideone.com/GfgDZ3
您在 java 中有更好的方法来反转字符串。请检查 this 答案:
你可以使用这个:
new StringBuilder(hi).reverse().toString()
或者,对于 JDK 1.5 之前的版本,使用 java.util.StringBuffer
而不是 StringBuilder
— 它们具有相同的 API。感谢评论员指出现在 StringBuilder
是首选。
你可以这样写你自己的方法:
public static String reverse(String str)
{
String reversed = new String();
for ( int j = str.length()-1; j >= 0; j-- )
reversed += str.charAt(j);
return reversed;
}
然后尝试反向("Hello");
此代码无效。你能告诉我哪里出了问题吗?为什么?
package exer0403e08;
public class EXER0403E08 {
public static void main(String[] args) {
String str= "hello";
System.out.println(str);
char[]strchar = str.toCharArray();
int first;
int last=5;
System.out.println("The reversed is: ");
for (first=1; first<=5; first++){
strchar[first]=strchar[last];
last--;
}
str=String.valueOf(strchar);
str=str.toUpperCase();
System.out.println(str);
}
}
答案是"OLLO",我想做到"OLLEH"。
你的循环有几个问题。你误解了数组索引。
您正在迭代和修改同一个数组。因此,奇怪的行为和索引将从数组的零开始。
所以固定代码将是
public static void main(String[] args) {
String str = "hello";
System.out.println(str);
char[] strchar = str.toCharArray();
int first;
int last = 4;
System.out.println("The reversed is: ");
for (first = 0; first < 5; first++) {
strchar[first] = str.charAt(last);
last--;
}
str = String.valueOf(strchar);
str = str.toUpperCase();
System.out.println(str);
}
更新:
演示 link http://ideone.com/GfgDZ3
您在 java 中有更好的方法来反转字符串。请检查 this 答案:
你可以使用这个:
new StringBuilder(hi).reverse().toString()
或者,对于 JDK 1.5 之前的版本,使用 java.util.StringBuffer
而不是 StringBuilder
— 它们具有相同的 API。感谢评论员指出现在 StringBuilder
是首选。
你可以这样写你自己的方法:
public static String reverse(String str)
{
String reversed = new String();
for ( int j = str.length()-1; j >= 0; j-- )
reversed += str.charAt(j);
return reversed;
}
然后尝试反向("Hello");