java字符串数组随机打乱
时间: 2023-10-11 13:07:15 浏览: 163
可以使用 Fisher-Yates 洗牌算法来随机打乱 Java 字符串数组。具体实现代码如下:
```java
public static void shuffleArray(String[] arr) {
Random rnd = new Random();
for (int i = arr.length - 1; i > 0; i--) {
int index = rnd.nextInt(i + 1);
String temp = arr[index];
arr[index] = arr[i];
arr[i] = temp;
}
}
```
使用示例:
```java
String[] arr = {"apple", "banana", "cherry", "date", "elderberry"};
shuffleArray(arr);
System.out.println(Arrays.toString(arr));
```
输出结果类似于:
```
[banana, elderberry, date, cherry, apple]
```
相关问题
写一段Java代码实现将字符串内容随机打乱
可以使用Java的Collections类中的shuffle方法来实现字符串内容随机打乱。具体代码如下:
```java
import java.util.ArrayList;
import java.util.Collections;
public class RandomizeString {
public static void main(String[] args) {
String str = "Hello World!";
ArrayList<Character> chars = new ArrayList<Character>();
for(char c : str.toCharArray()) {
chars.add(c);
}
Collections.shuffle(chars);
StringBuilder sb = new StringBuilder();
for(char c : chars) {
sb.append(c);
}
String randomizedStr = sb.toString();
System.out.println(randomizedStr);
}
}
```
首先将字符串转换为字符数组,然后将字符数组中的每个字符放入一个ArrayList中。接着使用Collections类中的shuffle方法将ArrayList中的元素进行随机打乱。最后将打乱后的字符数组重新组装成字符串并输出。
java实现键盘输入一个字符串,获得随机打乱字符位置后的字符串,并输出
在Java中,可以使用`Collections.shuffle()`方法结合字符串转数组的功能来实现这个功能。这里是一个简单的示例:
```java
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class RandomizeString {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String inputString = scanner.nextLine();
// 将字符串转换为字符数组
char[] chars = inputString.toCharArray();
// 随机打乱字符数组
Collections.shuffle(Arrays.asList(chars));
// 再将打乱后的字符数组转换回字符串
String randomizedString = new String(chars);
// 输出结果
System.out.println("随机打乱后的字符串是: " + randomizedString);
}
}
```
在这个程序中,我们首先从用户那里获取输入的字符串,然后将其转换为字符数组。接着使用`Collections.shuffle()`方法对字符数组进行随机排序,最后再将排好序的字符数组组合成一个新的字符串。
注意,这个过程会改变原字符串中字符的顺序,不会生成新的字符。如果你需要每个字符都可能出现,那么就需要考虑使用其他方法,比如替换策略等。
阅读全文