条件是什么?

时间:2016-10-18 16:42:24

标签: java

我正在尝试制作一个程序,询问用户两个数字。我想确定某个值出现在数字序列中的次数。例如,如果用户输入10和20,则数字“1”将出现9次。我想知道的是我必须设置什么条件来查看数字“1”出现的次数。

这是我到目前为止所得到的......

System.out.println("Enter a number: ");
    int no1 = scan.nextInt();
    System.out.println("Enter a number: ");
    int no2 = scan.nextInt();

    int i;
    int j = 0;

    for(i = no1; i <= no2; i++){
        if(){                      // Some condition here
            j++;
        }
    }
    System.out.println(j);
}

关于如何使我的代码高效的任何其他提示和技巧也将非常感激。

2 个答案:

答案 0 :(得分:1)

for (int i = no1; i <= no2; i++) {
  if(String.valueOf(i).contains("1"))
      int occurances = StringUtils.countOccurrencesOf(String.valueOf(i), "1");
      j+=occurances
}

答案 1 :(得分:0)

假设您想计算数字列表中数字的出现次数,您可以例如使用modulo:

int[] occurrences = new int[10];
for (int i = n1; i <= n2; i++) {
    int currentNumber = Math.abs(i);
    while (currentNumber > 0) {
        occurrences[currentNumber % 10]++;
        currentNumber /= 10;
    }
}

或解析数字的字符串表示

int[] occurrences = new int[10];
for (int i = n1; i <= n2; i++) {
    String cur = String.valueOf(Math.abs(i));
    for (int j = 0; j < cur.length(); j++) {
            char currentChar = cur.charAt(j);
            if (currentChar != '-')
                occurrences[Character.getNumericValue(currentChar)]++;
    }
}

出现次数将包含0到9之间的数字计数;

编辑:添加了对负整数的处理。