2017-10-04 29 views
1

我想創建一個程序,用於統計用戶輸入 (例如, 121221315如何拆分整數(從用戶輸入發生整數)

0:0次

1:4次

2:3次

3:1次

4:0次...等,直到9 .. 。

但我的代碼讀取eg 121221315作爲一個整數,我需要找到一種方法,可以拆分每個整數

另一個問題是,我不知道如何停止第一個for循環...我不知道要放在哪個條件當程序完成讀取輸入時如何停止循環...我剛開始學習編碼..請幫助我簡單/簡單的代碼!

我有下面的代碼

import java.util.Scanner; 
 

 
public class Occurrence { 
 
\t 
 
\t public static void main(String[] args) { 
 
      
 

 
     Scanner input = new Scanner(System.in); 
 

 
     int[] number = new int[100]; 
 

 
     System.out.print("Enter the integers between 1 and 100: "); 
 
     for (int i = 0; i < number.length; i++) { 
 
      int a = input.nextInt(); 
 
      number[a] += a; 
 
       break; 
 
     } 
 
     for (int i = 1; i < number.length; i++) { 
 
      if (number[i] != 0) { 
 
       if (number[i]/i > 1) 
 
        System.out.println(i + " occurs " + number[i]/i + " times"); 
 
       else 
 
        System.out.println(i + " occurs " + number[i]/i + " time");    } 
 
     } 
 
    } 
 
}

+0

關於javascript java的東西是什麼?那不是javascript。這是java! –

回答

1

如果你給出Integer,你可以將其轉換爲String,在一個字符串數組拆分它,使用streamgroupingBy化妝發生的地圖。

Integer a = 121221315; 

Map<String, Long> collect = Arrays.stream(String.valueOf(a).split("")) 
      .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); 

這當然,如果你被允許使用Java 8功能。

該地圖將包含至少存在一次的位數的出現。邏輯上,其餘位數有0次出現。

+0

感謝您的回答!如果用戶輸入數字會怎麼樣?通過鍵盤 –

+0

@SongPak,你是什麼意思?這個例子是爲數字,''String.valueOf(a)''將它轉換爲字符串 –

+0

,就像我不知道給出的數字...我不知道如果數字將是121221315 ...它可能是一些事情,取決於用戶輸入...也許a = keyboard.nextInt(); ? –