繁体   English   中英

如何在两个不同的输出中识别相同的数字

[英]How to identify the same number in two different outputs

我被分配做一个程序,用户将输入两个整数,该程序将能够以降序形式显示两个整数中的相同数字

例如

第一个输入:1122334455

第二个输入:1234567

输出将是:5 4 3 2 1

这是我尝试过但没有工作的代码,因为我似乎无法在数组中存储值,或者我的逻辑可能是错误的,任何形式的帮助将不胜感激,谢谢!

import java.util.*;
public class Main {
    public static void main (String[]args) {

        Scanner input = new Scanner(System.in);
        int a = input.nextInt();
        String aa= a + "";
        int b = input.nextInt();
        String bb = b + "";
        int[] cars = new int[aa.length()];
        if ( aa.length() < bb.length() )
        {
            for ( int x = 0; x < aa.length(); x++ )
            {  
                for (int y = 0 ; y < bb.length() ; y++ )
                { 
                    if ( aa.charAt(x) == bb.charAt(y) )
                        cars[x] = aa.charAt(x);
                }
            }

            for ( int i = 0 ; i < cars.length; i++ ) 
            {
                if ( cars[i] != 0 )
                    System.out.println(cars[i]);
                else {
                }
            }
        }

    }
}

好吧,你有太多的 cicles,这很简单,首先将任何输入转换为 char 数组,然后遍历它,检查每个值是否包含在另一个输入中,如果是,则将其添加到一个新列表中,这将是您的结果并最终对该列表进行排序。

    String aa="1122334455";
    String bb="1234567";
    List<Integer> result = new ArrayList();

    char[] aa_arr = aa.toCharArray();
    for(char aa_ : aa_arr){
        if(bb.contains(aa_+"") && !result.contains(Integer.parseInt(aa_+""))){
            result.add(Integer.parseInt(aa_+""));
        }
    }

    Collections.sort(result, Collections.reverseOrder());
    System.out.println(result);

结果:

[5, 4, 3, 2, 1]

我看不出有什么明显的错误。 你没有包括你得到的错误,或者你得到的意外输出。 也许如果你优化一点。

import java.util.*;
public class Main {
    public static void main (String[]args){
        Scanner input = new Scanner(System.in);
        int a = input.nextInt();
        String aa= a + "";
        int b = input.nextInt();
        String bb = b + "";
        StringBuilder output = new StringBuilder("[");
        String delimiter = "";
        for (int x = 9 ; x >= 0 ; x++) {
            String compare = Integer.toString(x);
            if (aa.indexOf(compare) != -1 && bb.indexOf(compare) != -1) {
                output .append(delimiter);
                output .append(compare);
                delimiter = ", ";
            }
        }
        output.append("]");
        System.out.println(output .toString());
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM