繁体   English   中英

如何使用不同的数据类型进行交换

[英]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数组,如上面的示例所示...

真正的问题:-我知道我可以使用循环和数组来转换它。但是我想知道是否可以使用数组交换来实现它?[也许通过其索引?]

附:-很抱歉给您带来任何方便。 并预先感谢

您可以执行以下操作。

  1. 无需单独存储,您可以创建一个类并将其存储。

     public class Numbers { String word; Integer digit; public Numbers(String w, int d) { word = w; digit = d; } 

    }

  2. 使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM