Java 如何在不使用数组或向量的情况下洗牌字符串?

Java 如何在不使用数组或向量的情况下洗牌字符串?,java,Java,所以,在学校里,我们有一个家庭作业,我必须展示一个单词,让学生猜它写了什么。然而,我们还没有学过如何洗牌单词,教授让我们用谷歌搜索。到目前为止,我已经读了一些文章,但它们不起作用,至少在我的情况下是这样 所以,如果你们中有人能告诉我怎么做,并向我解释,我会非常高兴——如果你们愿意的话 既不能使用数组也不能使用向量。谢谢大家! 字符串基本上是一个封装在类中的数组,所以这是一个有趣的要求,但您可以在n次迭代中一次洗牌一个字符。填写我留下评论的那一行 Random r = new Random (Sy

所以,在学校里,我们有一个家庭作业,我必须展示一个单词,让学生猜它写了什么。然而,我们还没有学过如何洗牌单词,教授让我们用谷歌搜索。到目前为止,我已经读了一些文章,但它们不起作用,至少在我的情况下是这样

所以,如果你们中有人能告诉我怎么做,并向我解释,我会非常高兴——如果你们愿意的话


既不能使用数组也不能使用向量。谢谢大家!

字符串基本上是一个封装在类中的数组,所以这是一个有趣的要求,但您可以在n次迭代中一次洗牌一个字符。填写我留下评论的那一行

Random r = new Random (System.currentTimeMillis());
For (int i = 0; i < n; i ++) { // n is your number of iterations 
  int idx = r.nextInt(str.length);
  // use String .substring to move the character at index idx to the end of the string 
}
Random r=新随机(System.currentTimeMillis());
对于(inti=0;i
由于这是一项任务,因此将给出基本解释,并让您自行执行

您可以创建/编写一个交换函数
swap(posA,posB,string)
,它接受两个参数
posA
posB
,并交换字符串“string”中相应位置的字符。循环遍历所有字符,并在每种情况下生成两个随机数(位置),然后交换字符:

for (char element : string ){
   swap(genRandom(), genRandom(), string);
}

其中
genRandom()
是字符串长度范围内的随机数生成器

在这里洗牌一个词对你意味着什么?为什么不能使用数组?请提供上述文章以及您在Java中尝试这些文章时看到的内容,
String
不是数组。它们是完全不同的类型。记住,Java是一种强类型语言。@LewBloch我已经澄清:“字符串基本上是一个封装在类中的数组”这不起作用,因为字符串在Java中是不可变的。