gpt4 book ai didi

java - 根据加在一起的字母值对字符串进行排序。 ( java )

转载 作者:行者123 更新时间:2023-12-01 11:45:17 24 4
gpt4 key购买 nike

这是我在这里发表的第一篇文章,所以请耐心等待。我正在自学 Java,试图为计算机科学类(class)做准备。我计划明年参加,但我遇到了一个问题。

该问题要求我将值分配给小写字母,从 a = 1, b = 2...z = 26。然后我将编写一个方法,给定一个字符串数组String[]名称,将根据哪个数组具有最大的字母值相加对它们进行排序。例如,“ed”的值为 9,因为 e 是 5,d 是 4。

另一个例子,给定 annie, bonnie, liz 该方法将排序为 bonnie, liz, annie

我对如何用代码来处理这个问题感到有点困惑,并且正在寻求一些帮助。预先感谢!

最佳答案

当你通过自己的实验了解更多信息时,我不会为你解决确切的问题......但是你可能会受到这个启发

public class Sorting {
public static Map<Character, Integer> characters = new HashMap<Character, Integer>();
static{
characters.put('a', 1);
characters.put('b',2);
}

static class StringValue implements Comparable<StringValue> {
private Integer value = 0;
private String name = "";
public StringValue(String name){
this.name = name;
for(char aChar : name.toCharArray()){
value += Sorting.characters.get(aChar);
}
}
public int compareTo(StringValue o) {
return value.compareTo(o.value);
}
public String getName() {
return name;
}
public Integer getValue() {
return value;
}
}

public static void main(String [] args){
String [] values = {"bb", "a", "aa" , "abaa"};
List<StringValue> stringVals = new ArrayList<StringValue>();
for(String val : values){
stringVals.add(new StringValue(val));
}
Collections.sort(stringVals);
for(int i = 1; i <= stringVals.size(); i++){
StringValue aVal = stringVals.get(i-1);
System.out.println(aVal.getName() + " has value " + aVal.getValue() + " and rank " + i);
}
}
}

输出:

a has value 1 and rank 1
aa has value 2 and rank 2
bb has value 4 and rank 3
abaa has value 5 and rank 4

关于java - 根据加在一起的字母值对字符串进行排序。 ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29190359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com