亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

給定一個字符串,返回一個字符串,其中每個字符都是原始字符,有兩個字符?

給定一個字符串,返回一個字符串,其中每個字符都是原始字符,有兩個字符?

繁星coding 2021-12-01 19:13:07
例如,我想向后打印每個字符串兩次(字符串 - > ggnniirrttss)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 = 0; i < str.length(); i++) {        result += str.substring(i, i + 1) + str.substring(i, i + 1);        String result2 = null;        result2 = result;        System.out.println(result2);        }    }}然而,當我輸入這個代碼時,我得到的只是ssttrriinngg全部在新線路上。有誰知道如何解決這個問題?謝謝
查看完整描述

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


查看完整回答
反對 回復 2021-12-01
?
qq_笑_17

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);


查看完整回答
反對 回復 2021-12-01
?
RISEBY

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());

    }

}


查看完整回答
反對 回復 2021-12-01
  • 3 回答
  • 0 關注
  • 274 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號