【发布时间】:2017-10-15 00:22:16
【问题描述】:
我正在尝试编写自己的字符串反向算法(我知道这已经存在于 java 中,但我这样做是为了教育)。下面的代码是我到目前为止所拥有的。它只输出反转字符串的一半。我已经进行了一些调试,原因是它与 stringChars 同时更改了 stringChars2 但我不知道为什么会发生这种情况,因为我只是想更改字符串字符。非常感谢所有帮助。
编辑我的问题不是之前问过的“如何反转字符串”……而是为什么我的对象在没有指示的情况下发生变化,下面的答案完全解释了这个问题。
public static void main(String[] args) {
//declare variables
Scanner input = new Scanner(System.in);
String myString = "";
int length = 0, index = 0, index2 = 0;
//get input string
System.out.print("Enter the string you want to reverse: ");
myString = input.next();
//find length of string
length = myString.length()-1;
index2 = length;
//convert to array
char[] stringChars = myString.toCharArray();
char[] stringChars2 = stringChars;
//loop through and reverse order
while (index<length) {
stringChars[index] = stringChars2[index2];
index++;
index2--;
}
//convert back to string
String newString = new String(stringChars);
//output result
System.out.println(newString);
//close resources
input.close();
}
【问题讨论】:
-
您认为以下语句的作用是什么:
char[] stringChars2 = stringChars;? -
我只是一个初学者......对象还不是我的东西;)
标签: java string algorithm reverse