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 循环向后计数,从单词中最后一个字符的索引到第一个字符(以零为基础的表示法)

print 打印反转的单词+空格(“”),它使用 print 代替 println 的事实是因为 println 会添加一个回车符,将每个单词放在不同的行中。

tempWord = ""; 在每次迭代结束时重置变量,以便可以重用。

于 2012-10-25T01:15:37.487 回答