gpt4 book ai didi

java - 在JAVA中,有没有办法对整数的数字进行排序而不需要任何数组?

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

我试图在JAVA中按降序对整数的数字进行排序,但不允许我使用任何数组。

这是我在类里面的作业,下面是我尝试过但失败的代码。

import java.util.Scanner;
class descend
{
public static void main(String args[])
{
int a=0,loc=0,parse=0,temp=0,big=0;
Scanner scan = new Scanner(System.in);
System.out.print("Enter a number");
a=scan.nextInt();
String s=Integer.toString(a);
int l=s.length();
for(int i=0;i<l;i++)
{
big=(int)(s.charAt(i));
loc=i;
for(int j=i+1;j<l;j++)
{
parse=(int)(s.charAt(j));
if(parse>big)
{
big = parse;
loc=j;
}
}
temp=parse;
s.charAt(i)=s.charAt(loc);
s.charAt(loc)=temp
}
System.out.print(s);
}
}

这里我在 s.charAt(i)=s.charAt(loc);s.charAt(loc)=temp; 处遇到语法错误,变量是必需的,但已给出一个值。

请帮助我解决这个问题,我将永远感激你。

最佳答案

也许老师想测试你对新的流 API 的了解。或者他可能希望您测试一下您对 Collections.sort() 和 LinkedList(不包含内部数组)的了解。

1.) 这是一个使用流 API 的解决方案:

int number = 52214;
String.valueOf(number).chars()
.sorted()
.map(Character::getNumericValue).forEach(System.out::print);

这将打印出:

12245

2.) 这是一个集合解决方案:

List<Integer> list = new LinkedList<Integer>();
StringCharacterIterator iterator = new StringCharacterIterator(String.valueOf(number));
for (char c = iterator.first(); c != CharacterIterator.DONE; c = iterator.next())
{
list.add(Character.getNumericValue(c));
}
Collections.sort(list);
System.out.println("list=" + list);

这将打印出:

list=[1, 2, 2, 4, 5]

关于java - 在JAVA中,有没有办法对整数的数字进行排序而不需要任何数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55610006/

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