Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示字母表中字母的显示顺序_Java_Arrays - Fatal编程技术网

Java 显示字母表中字母的显示顺序

Java 显示字母表中字母的显示顺序,java,arrays,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 <

我有一个字符串形式的密钥,例如“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)) + " ");
}
顺便说一下,我没有把输出放在数组中,因为输出不是我想要的


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

稍微调整一下你的
字母表应该可以:

    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 + " ");
    }
String key=“Security”.toLowerCase();
字符串字母表=
//将密钥拆分为多个字符。
Arrays.stream(key.split(“”)
//分类。
.已排序()
//把它重新组合成一条线。
.collect(收集器.joining());
对于(int i=0;i
您可以从字符串中获取字符数组,对其进行排序,并为字符串中的每个字符在排序后的字符数组中找到相应的索引

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);
}
String key=“安全”;
key=key.toLowerCase();
字符字母[]=key.toCharArray();
数组。排序(字母);/'c“e”i“r”s“t”u“y”
对于(int i=0;i
您只需将自己的单词转换为字符数组、排序并返回字符串,即可对其进行排序

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

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

key = new String(charArray);

你可以用类似的方法来解决它。代替“alphabet”变量,将该字符串更改为密钥的排序版本。您当前正在输出字母表中的绝对位置(从0开始表示“a”)。您现在需要基于此进行排序。谢谢,这很有效,您的评论有助于我理解解决方案。干杯
String key = "Security";
key = key.toLowerCase();

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

key = new String(charArray);