gpt4 book ai didi

java - 在 Eclipse 中多次打乱字符串

转载 作者:行者123 更新时间:2023-12-01 18:33:08 25 4
gpt4 key购买 nike

我正在编写的程序的一些代码遇到了一些问题。该程序的目的是从单独的文本文件中取出一个单词,将其打乱十次,然后显示该单词的打乱字母。我遇到的问题是我不确定如何将字母打乱十次。我知道实际的加扰发生在我的混合器方法中,但我不知道如何进行。我考虑过使用 for 循环,但我不知道如何去做。

import java.io.*;
import java.util.*;

public class Scrambler {

public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File("words.txt"));
String text = input.next();
System.out.println("Original Word: " + text);
System.out.println();
System.out.println("Scrambled Word:");
System.out.println("********");
separate(text);
System.out.println("********");

}

public static void separate(String text) {
System.out
.println(" " + text.charAt(0) + " " + text.charAt(1) + " ");
System.out.println(text.charAt(2) + " " + text.charAt(3));
System.out
.println(" " + text.charAt(4) + " " + text.charAt(5) + " ");
}

public static String mixer(String text) {
Random r = new Random();
int r1 = r.nextInt(text.length());
int r2 = r.nextInt(text.length());

String a = text.substring(0, r1);
char b = text.charAt(r1);
String c = text.substring(r1 + 1, r2);
char d = text.charAt(r2);
String e = text.substring(r2 + 1, text.length());

text = a + b + c + d + e;

return text;
}

}

最佳答案

你的mixer()无法正常工作。我首先将字符串转换为 char[],然后检索 2 个随机索引并切换这些索引中的字符。

char[] stringasarray = text.toCharArray();
int length = text.length;

for(int i=0; i<length; i++){
int letter1 = rnd.nextInt(length);
int letter2 = rnd.nextInt(length);

char temp = stringasarray[letter1];
stringasarray[letter1] = stringasarray[letter2];
stringasarray[letter2] = temp;
}
String newtext = new String(stringasarray);

关于java - 在 Eclipse 中多次打乱字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23228647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com