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

规定字符排序序列如,Seq={'c','f','a','d','b','e'},String[]str={“abc”,"defb","cbea"},按照指定的字符顺序进行... 规定字符排序序列如, Seq = {'c', 'f', 'a', 'd', 'b', 'e' }, String[] str = {“abc”, "defb", "cbea"},按照指定的字符顺序进行字符串排序
最好有具体的代码
展开
 我来答
hdparrot
2013-10-05 · TA获得超过2404个赞
知道小有建树答主
回答量:1385
采纳率:0%
帮助的人:1151万
展开全部

可以这样做:

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

例如这样:

'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');
}
}

 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式