[英]How to swap using different data types
好吧,假设我有一个4个整数的数组==
int[] input = new int[]{1,2,3,4};
//now I some how converted these numbers into words and gets an array:-
String Str = new String[]{one,two,three,four};
//then I run a sort method on Str.
Arrays.sort(Str);
//and I got this array in the end ::: {four,one,three,two}
现在,我想将其转换为数字(int),以便最终结果应如下所示:-{4,1,3,2}
在Summery中:-我想通过输入的int数组通过其英语(单词)表示来排序
例子 :-
[input] [convert to words] [sorting] [Result]
{1,2,3,4} => {一,二,三,四} => {四,一,三,二} => 4,1,3,2
{55,23,3,45} => {五十五,二十三,三,四十五} => {五十五,四十五,三,二十三} => {55,45,3,23}
因此,直到现在我设法将输入转换为单词并对其进行排序,但是我不知道如何将Str array
转换回其原始int数组,如上面的示例所示...
真正的问题:-我知道我可以使用循环和数组来转换它。但是我想知道是否可以使用数组交换来实现它?[也许通过其索引?]
附:-很抱歉给您带来任何方便。 并预先感谢
您可以执行以下操作。
无需单独存储,您可以创建一个类并将其存储。
public class Numbers { String word; Integer digit; public Numbers(String w, int d) { word = w; digit = d; }
}
使用Arrays.sort
并创建您的自定义比较器
Arrays.sort(n, new Comparator<Numbers>() { public int compare(Numbers word, Numbers o) { return word.digit.compareTo((o.digit)); } });
假设您知道如何将int
转换为String
,则只需在比较器中使用“ intToWord”功能:
Arrays.sort(n, new Comparator<Integer>() {
public int compare(Integer a, Integer b) {
return intToWord(a).compareTo(intToWord(b));
}
}
您已经将数字翻译成单词,并且在将其转换回单词时遇到了问题。
在第一部分中进行转换时,请创建一个具有键,值对的映射,例如{"one","1"},{"two","2"}
。 然后,只需使用该映射即可将排序后的结果转换回去。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.