0

我目前正在学习如何使用数组制作程序。我正在尝试学习如何复制 az 等字符。我知道如何做copyFrom 和 copyTo,但我不知道如何获取和挑选随机字母来形成一个单词,例如 apple。这是我的代码:

公共类复制数组{

public static void main(String [] args){ 

    char[] copyFrom = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
            'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };       

     char[] copyTo = java.util.Arrays.copyOfRange(copyFrom, 2, 20);

        System.out.println(new String(copyTo));

    }

}

我目前有 copyTo 和 copyFrom ,但这只是更多的代码来帮助视觉偏好。

- 我将如何复制某些字符,例如 [0] = a [15] = p [15] = p [11] = L [4] = e 并打印出苹果?

4

3 回答 3

3

尝试这个:

char[] randomChars = {
    copyFrom[0],
    copyFrom[15],
    copyFrom[15],
    copyFrom[11],
    copyFrom[4]
}

String output = new String(randomChars);

现在output将包含字符串"apple"。确实没有其他方法,因为您需要来自 source 的随机字符char[],并且“复制”方法仅适用于连续字符的范围。

为了使解决方案更通用,您可以编写一个辅助方法,该方法接收具有int[]相对于的索引copyFrom并返回具有这些位置的字符的字符串,如下所示:

public String copyRandom(char[] copyFrom, int[] indexes) {
    char[] output = new char[indexes.length];
    for (int i=0; i < indexes.length; i++)
        output[i] = copyFrom[indexes[i]];
    return new String(output);
}

这是你将如何使用它:

int[] indexes = {0, 15, 15, 11, 4};
copyRandom(copyFrom, indexes);
=> "apple"
于 2013-10-21T15:53:45.517 回答
0

一种方法是 - 假设您想用 5 个字母创建单词。只需从数组中的随机位置获取 5 个字母,仅此而已。但这很少会给你一个有意义的词。

另一种方法是 - 拥有尽可能多的单词字典,用 5 个字母说单词。然后如上所述生成随机字符串并检查它是否存在于您的字典中。

于 2013-10-21T15:55:41.830 回答
0
copyTo[0] = copyFrom[0];
copyTo[1] = copyFrom[13]; 

等等..

于 2013-10-21T15:55:50.883 回答