[英]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.