Java 如何让我的代码正确使用不同位数的数字?

Java 如何让我的代码正确使用不同位数的数字?,java,loops,variables,if-statement,Java,Loops,Variables,If Statement,该程序搜索下一个最小的数字,其数字按升序排列。它可以正常工作,但是对于没有三位数的数字,它当然不起作用,因为我的if语句不能缩放。我怎么能让他们这么做 import java.util.ArrayList; import java.util.Arrays; public class Main{ public static void main(String[] args){ String String="143"; int Zahl = Integer.p

该程序搜索下一个最小的数字,其数字按升序排列。它可以正常工作,但是对于没有三位数的数字,它当然不起作用,因为我的if语句不能缩放。我怎么能让他们这么做

import java.util.ArrayList;
import java.util.Arrays;
public class Main{
     public static void main(String[] args){
        String String="143";
        int Zahl = Integer.parseInt(String);
        for(int j=0; j<1000;j++){
            int digitscount=0;
            if(Zahl>9){
                int NeueZahl = Zahl;
                ArrayList<Integer> List = new ArrayList<Integer>();
                while (NeueZahl > 0) {
                    List.add(NeueZahl % 10);
                    NeueZahl = NeueZahl / 10;
                    digitscount++;
                }
                int[] ret = new int[List.size()];
                int a=List.size()-1;
                for (int i=0; i < List.size(); i++){
                    ret[i] = List.get(a).intValue();
                    a--;
                }
                if(ret[0]>ret[1]||ret[1]>ret[2]){
                    Zahl--;
                }
                if(ret[0]<ret[1]&&ret[1]<ret[2]){
                    System.out.println(Zahl);
                    break;
                }
            }
        }
    }
}
import java.util.ArrayList;
导入java.util.array;
公共班机{
公共静态void main(字符串[]args){
String=“143”;
int Zahl=Integer.parseInt(字符串);
对于(int j=0;j9){
int NeueZahl=Zahl;
ArrayList=新建ArrayList();
而(NeueZahl>0){
列表。添加(NeueZahl%10);
NeueZahl=NeueZahl/10;
digitscount++;
}
int[]ret=new int[List.size()];
int a=List.size()-1;
对于(int i=0;iret[1]| | ret[1]>ret[2]){
扎尔--;
}

if(ret[0]而不是硬编码
ret[N]
,考虑一般情况。关于在潜在值上循环并确保每个数字大于前一个数字的事情?另外,将该逻辑移到单独的方法中,以便您可以更轻松地测试它。而不是硬编码
ret[N]
,考虑一般情况。关于在潜在值上循环并确保每个数字都大于前一个数字的内容?此外,将该逻辑移到单独的方法中,以便您可以更轻松地测试它。