【问题标题】:How to pass an object to a method and then to an other method如何将对象传递给一个方法,然后再传递给另一个方法
【发布时间】:2019-12-14 16:20:43
【问题描述】:

我目前正在处理的程序应该采用一个字符串数组,混合字符串数组的内容(例如 word1 word2 word3 / 重新排序为 word3 word1 word2)并在终端中显示输出。我现在尝试了 4 种不同的 print 变体,但它们似乎都不起作用。有没有我缺少的功能?

import java.util.Random;
Random Random = new Random();

void setup(){

  String[] text3={"Word1", "Word2", "Word3", "Word4", "Word5", "Word6"};
  printArray(scramble(text3));
}

void scramble(String[] str) {                 
  for (int i = 0; i < str.length; i++) {
    int rd0 = Random.nextInt(i+1);
    int rd1 = Random.nextInt(i+1);
    String temp = str[rd0]; 
    str[rd0] = str[rd1]; 
    str[rd1] = temp; 
  }
}

【问题讨论】:

  • 如果您在处理中,为什么要为处理已经可以做的事情添加“仅在 JVM 中支持”的 Java 代码? random() 已经存在。
  • 但在我的情况下,我需要随机排列一些数字,以便像 Fisher-Yates Shuffle 那样在数组中移动东西,这也可能只使用 random() 吗?
  • 顺便说一句,在你的代码中text3 是一个 一个 元素的数组,祝你好运!
  • 您是否通过链接阅读了功能说明?因为你的问题表明你没有。此外,正如@Orace 指出的那样,您的数组目前只是一个字符串。因此,即使你按照他的回答建议去做,也没有什么可以改变的。
  • 我很确定“Procssing”标签不是 OP 认为的那样。

标签: arrays string processing


【解决方案1】:

printArray 接受一个数组作为参数。

你实际上给了它scramble的结果,也就是void

调用scramble然后调用printArray,传递你要打印的数组。

所以,只需将数组传递给第一个方法,然后再传递给第二个方法:

scramble(text3);
printArray(text3);

【讨论】:

  • 我来自 C++,所以请耐心等待。 scramble() 不会处理数组的副本,printArray() 仍会收到原始的未修改数组吗?
  • Nope Java 类对象(包括数组)是“引用类型”并通过引用传递。见stackoverflow.com/questions/15183387/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-16
相关资源
最近更新 更多