显示字母表中的字母顺序

时间:2017-09-22 07:45:11

标签: java arrays

我有一个字符串形式的键,例如“security”,我想创建一个数组,显示字母表中每个字母的顺序,代替字母。因此,例如,对于单词“security”,该数组将为[5, 2, 1, 7, 4, 3, 6, 8](假设我不是从零开始)。

这是我尝试过的,但它没有输出我需要的东西:

String key = "Security";

key = key.toLowerCase();

String alphabet = "abcdefghijklmnopqrstuvwxyz";

for (int i = 0; i < key.length(); i++) {
    System.out.print(alphabet.indexOf(key.charAt(i)) + " ");
}

输出:

18 4 2 20 17 8 19 24

顺便说一下,我没有把输出放在数组中,因为输出不是我想要的。

有什么建议吗?我相信这对大多数程序员来说都很容易,但我是Java编程的新手,所以对我来说很难。

3 个答案:

答案 0 :(得分:2)

alphabet进行一些调整应该:

    String key = "Security".toLowerCase();
    String alphabet =
            // Split the key into characters.
            Arrays.stream(key.split(""))
            // Sort it.
            .sorted()
            // Put it back together into a String again.
            .collect(Collectors.joining());
    for (int i = 0; i < key.length(); i++) {
        System.out.print(alphabet.indexOf(key.charAt(i)) + 1 + " ");
    }

答案 1 :(得分:1)

您可以通过将自己的单词转换为char数组,排序并返回String来简单地对自己的单词进行排序。

String key = "Security";
key = key.toLowerCase();

char[] charArray = key.toCharArray();
Arrays.sort(charArray);

key = new String(charArray);

答案 2 :(得分:0)

你可以从你的字符串中获取char数组,对它进行排序,并为string中的每个char找到sort char数组中的相应索引。

String key = "Security";
key = key.toLowerCase();

char letters[] = key.toCharArray();
Arrays.sort(letters);    // 'c' 'e' 'i' 'r' 's' 't' 'u' 'y'

for (int i = 0; i < key.length(); i++) {
    int index = Arrays.binarySearch(letters, key.charAt(i));
    System.out.format("%d ", index + 1);
}