【问题标题】:How do I return the array values despite being inside a nested for loop?尽管在嵌套的 for 循环中,如何返回数组值?
【发布时间】:2015-07-01 07:50:29
【问题描述】:
for(int counter = 0; counter < args.length; counter++){
        System.out.println("Displaying per words: " + args[counter]);
        splitWords = args[counter].toCharArray();
        for(int counter2 = 0; counter2 < splitWords.length; counter2++){
            System.out.println("Word spliced: " + splitWords[counter2]);
            System.out.println("The number equivalent of " + splitWords[counter2] + " is "
                    + (int) splitWords[counter2]);
            occurenceCount[(int)splitWords[counter2]]++;
            System.out.println("The letter " + splitWords[counter2] + 
                    " was shown " + occurenceCount[(int)splitWords[counter2]] + " times.");


        }
    }

我的函数没有将 counter2 检测为变量,因为它位于嵌套的 for 循环内。那么我该如何摆脱这种困境呢?

我正在尝试使用参数输入(分别为字符串)并使用 ascii 表作为参考发布出现次数,如您所见,只有一个障碍阻止我完成此操作。

有什么想法吗?

【问题讨论】:

  • 你想做什么?
  • “未检测到”是什么意思?问题出在哪里?
  • 你得到什么错误?
  • 我需要通过 int[]occurrenceCount 将出现次数作为数组值返回。基本上,我想将数组值“传递”给另一个函数。

标签: java arrays for-loop return-value


【解决方案1】:

你的主要问题是你错过了一个重要的事实——直到你的循环完成后你的计数才完成。

因此,您需要在第一个循环完成后在单独的循环中打印出您的计数。

public void test() {
    String[] args = {"Hello"};
    int[] occurenceCount = new int[256];
    for (int word = 0; word < args.length; word++) {
        System.out.println("Displaying per words: " + args[word]);
        char[] splitWords = args[word].toCharArray();
        for (int character = 0; character < splitWords.length; character++) {
            System.out.println("Word spliced: " + splitWords[character]);
            System.out.println("The number equivalent of " + splitWords[character] + " is "
                    + (int) splitWords[character]);
            occurenceCount[(int) splitWords[character]]++;
            System.out.println("Word spliced: " + splitWords[character]);
        }
    }
    // Scond loop to print the results.
    for (int character = 0; character < occurenceCount.length; character++) {
        int count = occurenceCount[character];
        if (count > 0) {
            System.out.println("The letter " + ((char) character)
                    + " was shown " + count + " times.");
        }

    }
}

【讨论】:

  • 谢谢,现在确实有意义。我会继续修改,直到我的小时数结束。xD
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-19
  • 2020-05-21
  • 1970-01-01
  • 2015-06-20
相关资源
最近更新 更多