[英]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);
}
更新:
您可以这样编写自己的方法:
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;
}
然后尝试reverse(“ Hello”);
您在Java中有更好的方法来反转字符串。 请检查以下答案:
您可以使用此:
new StringBuilder(hi).reverse().toString()
或者,对于JDK 1.5之前的版本,请使用java.util.StringBuffer
而不是StringBuilder
它们具有相同的API。 感谢评论员指出StringBuilder
是当今的首选。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.