簡體   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