按照指定的字符顺序进行字符串排序
规定字符排序序列如,Seq={'c','f','a','d','b','e'},String[]str={“abc”,"defb","cbea"},按照指定的字符顺序进行...
规定字符排序序列如, Seq = {'c', 'f', 'a', 'd', 'b', 'e' }, String[] str = {“abc”, "defb", "cbea"},按照指定的字符顺序进行字符串排序
最好有具体的代码 展开
最好有具体的代码 展开
1个回答
展开全部
可以这样做:
把那个顺序用别的字母替换一下。
例如这样:
'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');
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询