gpt4 book ai didi

java - 对于相同的输入,Arrays.sort() 对于 int[] 和 String 的工作方式不同,为什么?

转载 作者:行者123 更新时间:2023-12-02 02:08:59 26 4
gpt4 key购买 nike

我正在努力解决 leetcode 上的这个问题 https://leetcode.com/problems/largest-number/description/

我正在寻找解决方案,并注意到当输入是数字时与输入是字符串(仍然是数字)时排序的行为不同。

输入:

[3,30,34,5,9]

代码:

String[] numstoString = new String[nums.length];
for(int i=0;i<nums.length;i++){
numstoString[i] = Integer.toString(nums[i]);
}

Arrays.sort(numstoString);
Arrays.sort(nums);
System.out.println(Arrays.toString(nums));
System.out.println(Arrays.toString(numstoString));

输出:

[3,5,9,30,34]

[3, 30, 34, 5, 9]

有人可以告诉我在排序方面“数字”与数字有何不同吗?

最佳答案

数字排序与字符串排序不同,当你对数字进行排序时,你实际上是在比较其中的值,3 < 5 < 9 < 30 < 34 ,但是当将它们转换为字符串时,通过将它们转换为 ASCII 值,逐个字符地进行字符串比较,34 < 5因为第一个数字 3 < 5

关于java - 对于相同的输入,Arrays.sort() 对于 int[] 和 String 的工作方式不同,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50310376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com