1

これが私の宿題の解決策であり、目的はユーザーが文を入力することに基づいて文字列内の各単語を逆にすることでした。私はこれを自分で完了しましたが、このコードでイテレータがどのように機能したのか疑問に思っています。tempword="";の削除がわかりません。スペースで区切られた各単語をどのように印刷したか。

import java.util.Scanner;

public class StringReverser
{
    public static void main(String args[])
    {
        String sentence;
        String word;
        String tempWord = "";

        Scanner scan = new Scanner(System.in);
        Scanner wordScan;

        System.out.print("Enter a sentence: ");
        sentence = scan.nextLine();

        wordScan = new Scanner(sentence);

        while(wordScan.hasNext())
        {
            word = wordScan.next();

            for(int numLetters = word.length() - 1; numLetters >= 0; numLetters--)
                tempWord += word.charAt(numLetters);

            System.out.print(tempWord + " ");
            tempWord = "";
        }
        System.out.println();
    }
}
4

2 に答える 2

0

このビットはスペースに追加されます

System.out.print(tempWord + " ");

このビットはそれを逆転させます

for(int numLetters = word.length() - 1; numLetters >= 0; numLetters--)
            tempWord += word.charAt(numLetters);

このビットは次の単語のためにそれを設定します

tempWord = "";
于 2012-10-25T01:14:17.207 に答える
0

forループは、単語の最後の文字のインデックスから最初の文字(ゼロベースの表記)まで逆方向にカウントします。

印刷では、逆の単語+スペース( "")が印刷されます。これは、printlnの代わりにprintを使用するためです。これは、printlnがキャリッジリターンを追加して、各単語を異なる行に配置するためです。

tempWord = ""; 各反復の終わりに、変数をリセットして再利用できるようにします。

于 2012-10-25T01:15:37.487 に答える