【发布时间】:2017-03-14 05:16:30
【问题描述】:
我正在为我的一门课程做作业。一般来说,我对 java 很陌生,对于这个问题,我被要求只使用循环和 charAt();命令反转字符串的中点。但是,当我尝试在中点之后反转字符串时遇到了一个问题。它给了我一个例外,我不知道该怎么做,因为它看起来对我来说是正确的。任何帮助将不胜感激。
import java.util.Scanner;
public class PS4Reverse {
public static void main (String [] args) {
String x = "";
String t = "";
String full = "";
String rev = "";
String complete = "";
Scanner user = new Scanner(System.in);
System.out.println("Enter a string.");
x = user.nextLine();
int real = x.length();
int half = x.length();
half = half / 2;
int i = 0;
for (i = 0; i != half; i++)
{
char n = x.charAt(i);
full = full + n;
}
for (i = i; i != real; i++)
{
char n = x.charAt(i);
t = t + n;
}
int back = t.length();
System.out.println(back);
for (i = back; i != 0; i--)
{
char n = t.charAt(i);
rev = rev + n;
}
complete = full + rev;
System.out.println("Original String:\t\t" + x)
System.out.println("Reverse String:\t\t" + complete);
}
}
提前感谢大家!
【问题讨论】:
-
您的最后一个循环从数组的长度开始,该长度是其最后一个元素之后的长度。
标签: java string loops indexoutofrangeexception charat