3 回答

TA貢獻1851條經驗 獲得超3個贊
請參閱我更改的行上的評論:
向后迭代字符串
不要在每次循環迭代中打印每個雙字符,因為您正在連接最終結果
循環后打印最終結果
import java.util.Scanner;
public class ReverseDoubleChar {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a string ");
String str = input.nextLine();
String new_str = "";
String result = "";
for (int i = str.length() - 1; i >= 0; i--) { //Iterate through string backwards
result += str.substring(i, i + 1) + str.substring(i, i + 1); //Concatenation
String result2 = null;
result2 = result;
// System.out.println(result2); //Don't print each double char since you're concatenating above
}
System.out.println(result); //Print full double-charred string after loop
}
}
輸出:
Enter a string
string
ggnniirrttss

TA貢獻1818條經驗 獲得超7個贊
使 for 循環向后迭代:
String result = "";
for (int i = str.length() - 1; i >= 0; i--) {
String s = str.substring(i, i + 1);
result += s + s;
}
System.out.println(result);
或使用轉發循環:
String result = "";
for (int i = 0; i < str.length(); i++) {
String s = str.substring(i, i + 1);
result = s + s + result;
}
System.out.println(result);

TA貢獻1856條經驗 獲得超5個贊
也許使用 StringBuilder 而不是做你自己的子字符串和連接。
public class ReverseDoubleChar {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a string ");
StringBuilder str = new StringBuilder(input.nextLine());
StringBuilder result = new StringBuilder();
for (int i = str.length() - 1; i >= 0; i--) {
result.append(str.charAt(i));
result.append(str.charAt(i));
}
System.out.println(result.toString());
}
}
添加回答
舉報