Java 显示字母表中字母的显示顺序
我有一个字符串形式的密钥,例如“security”,我想创建一个数组,显示字母表中每个字母的顺序,代替字母。例如,对于单词“security”,数组应该是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 <
[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);