关于Java中使用Arrays.sort()对数组进行排序后数组发生改变的问题

嗷呜猫 2018-07-24 09:31:44


如图,排序之后以0开头的数全部发生了变化,请问这是怎么回事?哪位dalao帮忙解答下
...全文
957 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Vilen7 2018-07-25
  • 打赏
  • 举报
回复
是进制问题,0开头的当成八进制了,你可以自己网上搜下进制转换的也可以看到那就是八进制的值
stacksoverflow 2018-07-25
  • 打赏
  • 举报
回复
自己试一下

int a = 0165;
System.out.println(a); //117
System.out.println(Integer.toOctalString(a)); //165
stacksoverflow 2018-07-25
  • 打赏
  • 举报
回复
引用 3 楼 qq_42786397 的回复:
这和进制转换没有关系,我查过了0165转换为8进制是245,

0165本身就是八进制,而输出却默认为十进制,是八进制的0165变成十进制为117
0165=1*8*8+6*8+5=117
stacksoverflow 2018-07-25
  • 打赏
  • 举报
回复
和是否排序无关,0开头的数字按八进制来算。
嗷呜猫 2018-07-25
  • 打赏
  • 举报
回复
这和进制转换没有关系,我查过了0165转换为8进制是245,
eacc31 2018-07-24
  • 打赏
  • 举报
回复
也就是说 跟你用不用 sort() 没关系,, 你 syso 一下 试试 就知道了.
eacc31 2018-07-24
  • 打赏
  • 举报
回复
0 开头 就改变它的值了, 0165 就是八进制了.

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧