Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA基本迭代器_Java_Iterator - Fatal编程技术网

JAVA基本迭代器

JAVA基本迭代器,java,iterator,Java,Iterator,这是我的家庭作业的解决方案,目的是根据用户输入的句子将字符串中的每个单词颠倒过来。我自己已经完成了,但我只是想知道迭代器在这段代码中是如何工作的。我不明白tempword“”的delcaration;以及他是如何打印出每个由空格分隔的单词的 import java.util.Scanner; public class StringReverser { public static void main(String args[]) { String sentence

这是我的家庭作业的解决方案,目的是根据用户输入的句子将字符串中的每个单词颠倒过来。我自己已经完成了,但我只是想知道迭代器在这段代码中是如何工作的。我不明白tempword“”的delcaration;以及他是如何打印出每个由空格分隔的单词的

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

此位在空格中添加

System.out.print(tempWord + " ");
这一点正好相反

for(int numLetters = word.length() - 1; numLetters >= 0; numLetters--)
            tempWord += word.charAt(numLetters);
这一位为下一个单词设置它

tempWord = "";

for循环向后计数,从单词中最后一个字符的索引到第一个字符(以零为基础的表示法)

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


单词=”;在每次迭代结束时,重置变量,以便重复使用。

我完全理解for循环,但是tempWord=“”;为下一个单词设置它?对不起,我完全是个笨蛋,正在清空它。它说我已经完成了这个单词,我将重新使用这个字符串,开始在下一个单词中保存每个字符。它如何知道何时在每个空格处反转它,然后打印该段?扫描仪使用分隔符模式将其输入拆分为标记,默认情况下,该模式与空白相匹配。hasNext()bit是将句子切碎成单词的地方hanks我完全理解for循环,但不会理解tempWord+=word.charAt(numleters);系统输出打印(tempWord+“”);打印整个设置?每次迭代都会在tempword中添加一个新字符。在一个迭代周期结束时,即一个单词完成后,打印、清空临时单词,然后用下一个单词重新开始循环一个好但乏味的学习方法是自己在一张纸上按照算法逐行“模拟”它,跟踪所有变量我花了2个小时研究这个问题,试图在这里发布之前弄清楚它,最后我无法得到大的概念,但现在我做到了。无论如何,谢谢。请意识到这是Java而不是Java。虽然这是一段离题的代码,但这段代码实际上是一个使用字符串进行连续concat的糟糕示例。请使用StringBuilder/StringBuffer