按照指定的字符顺序进行字符串排序

发布网友 发布时间:2022-04-23 23:08

我来回答

1个回答

热心网友 时间:2022-05-17 21:39

可以这样做:

把那个顺序用别的字母替换一下。

例如这样:

'c', 'f', 'a', 'd', 'b', 'e' 替换成下面的顺序


'g', 'h', 'i', 'j', 'k', 'l' 


然后把字符串数组中的字符串都替换成下面的序列字符。

例如:

abc替换成了ikg

defb替换成了jlhk

这样全部替换完了以后,用Arrays.sort(str)排序,排序后的字符串数组,再重新替换成之前的字符串就可以了。

class sort
{
public static void main(String[]args)
{
String[] str = {"abc", "defb", "cbea"};
String[] convertStr = new String[str.length];
for(int i = 0;i < str.length;i++)
{
convertStr[i] = convert(str[i]);
}
java.util.Arrays.sort(convertStr);
for(int i = 0;i < str.length;i++)
{
str[i] = back(convertStr[i]);
}
System.out.println("排序的数组是:" + java.util.Arrays.toString(str));
}
//把无序的字母替换成顺序的字母ghijkl
public static String convert(String oldString)
{
return 
oldString.replace('c','g').replace('f','h')
.replace('a','i').replace('d','j')
.replace('b','k').replace('e','l');
}
//把字母替换回来
public static String back(String newString)
{
return 
newString.replace('g','c').replace('h','f')
.replace('i','a').replace('j','d')
.replace('k','b').replace('l','e');
}
}

 

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com