我想通过在Java中使用for循环编写程序来反转String Array,不建议任何方法stringBuffer或StringBuilder,甚至不建议使用字符串而不是字符串数组。
下面是我的代码,这里我收到一个错误,即无法在数组类型String []上调用charAt(int)。
package demo;
public class ReverseString1 {
String[] x={"Welcome"};
String y;
int i,j;
void reverse1(){
for(int i = x.length - 1; i >= 0; i--) {
y = y + x.charAt(i);
System.out.print(y);
}
}
public static void main(String[] args) {
ReverseString1 obj = new ReverseString1();
obj.reverse1();
}
}
答案 0 :(得分:0)
在您的代码中,x
是一个数组。数组没有charAt()
方法,因此出错。
也许你打算写:
void reverse1(){
for(int i = x[0].length()-1; i >= 0; i--){
y=y + x[0].charAt(i);
System.out.print(y);
}
}
请注意,我已经更改了for
循环语句,因此它会在索引0处迭代字符串,而不是数组。
或许你想要一个char[]
而不是String[]
?
然后你的代码看起来像这样:
char[] x = new char[] {'W', 'e', 'l', 'c', 'o', 'm', 'e'};
void reverse1(){
for(int i = x.length-1; i >= 0; i--){
y=y + x[i];
System.out.print(y);
}
}
此外,您可能希望在循环之外打印y
。
答案 1 :(得分:0)
int i,j;
void reverse1(){
for(int i = x.length-1; i >= 0; i--){
y = "";
for(int j = x[i].length-1; j >= 0; j--){
y=y + x[i].charAt(j);
}
System.out.print(y);
}
}
答案 2 :(得分:0)
这是您可以撤消:before
String
现在,让我们反转String reverse(String input) {
//input is a String
for (int i = 0; i < input.length() / 2; i++) {
char aux = input.charAt(i);
input.setCharAt(i, input.charAt(input.length - 1 - i));
input.setCharAt(input.length - 1 - i, aux);
}
}
数组的所有项目:
String
请注意,将结果与计算混合打印是不可行的。我给你的方式可以进行计算,因为我观察到你已经知道如何打印结果。您遇到的有效问题是String[] reverse(String[] input) {
for (int i = 0; i < input.length; i++) {
input[i] = reverse(input[i]);
}
}
是一个x
数组,您需要对其进行迭代以获取其String
项。对于您的代码,它将导致
String