Java 用数组限制我的输出

Java 用数组限制我的输出,java,arrays,Java,Arrays,我的问题与数组中的整数计数有关。这是到目前为止我的代码 import java.util.Scanner; public class Frequency { public static void main(String[]args) { Scanner kbd = new Scanner(System.in); System.out.print("enter numbers: "); int[] arr = new int[51]; for(int

我的问题与数组中的整数计数有关。这是到目前为止我的代码

import java.util.Scanner; 

public class Frequency { 
  public static void main(String[]args) { 
    Scanner kbd = new Scanner(System.in); 
    System.out.print("enter numbers: ");
    int[] arr = new int[51]; 
    for(int i = 0; true; i++) { 
      int in = kbd.nextInt(); 
      if(in < 0)break; 
      else if(in > 50)break; 
      else arr[in]++; 
    } 
    for(int i = 0; i < arr.length; i++) { 
      System.out.println(i+" occurrences of "+arr[i]); 
    } 
  } 
}
import java.util.Scanner;
公共类频率{
公共静态void main(字符串[]args){
扫描仪kbd=新扫描仪(System.in);
系统输出打印(“输入数字:”);
int[]arr=新int[51];
对于(inti=0;true;i++){
int in=kbd.nextInt();
如果(in<0)中断;
否则,如果(在>50)中断;
else arr[in]++;
} 
对于(int i=0;i

问题输出的方式是正确的,除了我需要某种方式过滤掉所有出现0的数字,以便只有输入中的数字显示在输出中;而不是0到50之间的每个数字。

您已经编写了一个
if
语句,当用户输入负数时停止第一个循环。只需为第二个循环编写相同的内容:

for(int i = 0; i < arr.length; i++) { 
  if (arr[i] > 0) {
    System.out.println(arr[i]+" occurrences of "+i); 
  }
} 
for(inti=0;i0){
System.out.println(arr[i]+“+i”的出现次数);
}
} 

旁注:我还交换了
arr[I]
I
您已经编写了
if
语句,当用户输入负数时停止第一个循环。只需为第二个循环编写相同的内容:

for(int i = 0; i < arr.length; i++) { 
  if (arr[i] > 0) {
    System.out.println(arr[i]+" occurrences of "+i); 
  }
} 
for(inti=0;i0){
System.out.println(arr[i]+“+i”的出现次数);
}
} 
旁注:我还将
arr[I]
I

替换为(int I=0;I
用于(int i=0;i
所以您需要跳过
0
、打印
1-9
、跳过
10
、打印
11-19
,等等?@nhgrif OP为0到49之间的数字保存一组计数器。看起来他/她想打印计数器不是0的数字。是的,我在重读问题后正要删除我的评论。所以你需要跳过
0
,打印
1-9
,跳过
10
,打印
11-19
,等等。@nhgrif OP为0到49之间的数字保留一个计数器数组。看起来他/她想打印计数器不是0的数字。是的,我刚想在重读问题后删除我的评论。我想OP想知道原始数组是否包含
I
,而不是
arr[I]>0
。当用户键入一个数字时,他显然是在递增
arr[in]
。因此,
arr[i]=j
意味着
j
出现
i
。我遗漏了什么吗?不,是我遗漏了
arr[in]+
行,给自己造成了各种各样的困惑。抱歉。我想OP想知道原始数组是否包含
I
,而不是
arr[I]>0
。当用户键入一个数字时,他显然是在递增
arr[in]
。因此,
arr[i]=j
意味着
j
出现
i
。我遗漏了什么吗?不,是我遗漏了
arr[in]+
行,给自己造成了各种各样的困惑。对不起。