2017-10-04 89 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(); ? –