Java 形成逻辑问题

Java 形成逻辑问题,java,arrays,sorting,logic,Java,Arrays,Sorting,Logic,示例示例1: 步骤1:原始样本i/p编号: 621 629 6201 6202 6200 623 622 6289 6274 6271 6270 628887 62870 625 步骤2:已排序的编号:这些编号应该像这组数字一样排序(根据我得到的预期结果如下所示的字符串集): 我的要求是按字符串排序,而不是按数学公式排序 因此,对我来说,java Arraysort在这里工作得很好,可以获得预期的输出。 字符串无效[]={“621”、“629”、“6201”、“6202”、“6200”、“623

示例示例1:

步骤1:原始样本i/p编号:
621
629
6201
6202
6200
623
622
6289
6274
6271
6270
628887
62870
625

步骤2:已排序的编号:这些编号应该像这组数字一样排序(根据我得到的预期结果如下所示的字符串集):

我的要求是按字符串排序,而不是按数学公式排序

因此,对我来说,java Arraysort在这里工作得很好,可以获得预期的输出。

字符串无效[]={“621”、“629”、“6201”、“6202”、“6200”、“623”、“622”、“6289”、“6274”、“6271”、“6270”、“628887”、“62870”、“625”}
Arrays.sort(无效)

已排序的i/p编号:

6200
6201
6202
621
622
623
625
6270
6271
6274
62870
628887
6289
629

**第三步:这是我很久以来一直坚持的一步

下面是我在步骤2中提到的数字列表的最终结果中所期望的一组输出数字**

计算基础不是基于数学计算方法,所以我需要在预期输出的基础上构建逻辑

我需要考虑前面的数字和下一个当前被考虑的数字,并且需要在输出列表中添加期望的数字。还需要在“n”数字上考虑数字长度和数字以找到下一个数字。 可以在分析输出结果后得出想法
预期订单号:

0
1
2
3
4
5
60
61
6203
6204
6205
6206
6207
6208
6209
624
626
6272
6273
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
62871
62872
62873
62874
62875
62876
62877
62878
62879
62880
62881
62882
62883
62884
62885
62886
62887
628880
628881
628882
628883
628884
628885
628886
628888
628889
62889
63
64
65
66
67
68
69
7
8
9

下面是我尝试获得步骤2中提到的结果: 而且效果很好。。现在,这个输出将作为步骤3程序的输入,以获得前面提到的最终输出

public static void main(String[] args) {

    // TODO Auto-generated method stub
    //System.out.println("Hello");

    String invalid[] = {"621","629","6201","6202","6200","623","622","6289","6274","6271","6270","628887","62870","625"};
    Arrays.sort(invalid);

    for(int i=0;i<invalid.length;i++) {
        System.out.println(invalid[i]);
    }

    SortInvalidLevels obj1 = new SortInvalidLevels();
}
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
//System.out.println(“你好”);
字符串无效[]={“621”、“629”、“6201”、“6202”、“6200”、“623”、“622”、“6289”、“6274”、“6271”、“6270”、“628887”、“62870”、“625”};
Arrays.sort(无效);

对于(int i=0;i您可以创建一个LinkedList。通过该类的迭代器()方法返回的ListIterator,您可以访问上一个和下一个元素,并在交互时创建和添加新元素。
请参阅ListIterator和LinkedList类。

这就是您试图实现的目标吗

Integer[] numbers = {2, 6, 62, 6255, 63, 9, 1, 12};
Arrays.sort(numbers, new Comparator<Integer>() {
     @Override
     public int compare(Integer o1, Integer o2) {
         return Integer.toString(o1).compareTo(Integer.toString(o1));
     }
});

将来,请将您尝试过的问题的代码张贴出来。

您的尝试在哪里?因此您希望对数字进行排序,使62**在63之前?是的。我的要求是首先根据级别进行排序,然后在需要时应用数学公式以升序排序。如果我的输入是,那么输出应该是支持的e我的输入数字集wd是然后输出集wd是这样的主基金A/技巧是0到9个数字再次保存0到9个子级别,同样保存到第n个数字级别。例如,0可以这样写,但它包含所有子级别,所以只写为0(这假设它保存范围为0到9)。同样适用于所有“n”的数字数字长度。是的,在第2步之前它是正确的输出,这个输出应该作为第3步程序的输入,以获得最终输出。我不知道我的输出和第3步中的输出之间有什么区别。在你的输入中,你不应该同时包含1和12。因为如果1存在,意味着1包含所有级别,所以12不应该包含在你的输入中r输入列表。如果您的输入是{26255,63,9,12},那么输出的数字集将是{0,10,11,13,14,15,16,17,18,19,3,4,5,60,6162062626262626262625253625462546256256625762586259626627628629,64,65,66,67,68,69,7和8}
[1, 12, 2, 6, 62, 6255, 63, 9]