我想问你一个问题,我想计算一个指定数字在用户的指定数字(长)中的次数,并将其打印为int。
你能帮我解释一下这段代码吗?
为我的英语道歉。
示例:
<数字指定= 4;给定的数字= 34434544;结果= 5.>
答案 0 :(得分:1)
检查最低有效数字是否等于您要搜索的数字;然后除以十并再次检查;一直走到零。
int cnt = 0;
while (value != 0) {
if (value % 10 == digit) ++cnt;
value /= 10;
}
您尝试计算大号digit
中value
的出现次数。
答案 1 :(得分:0)
设置Scanner
以获取System.in
的输入。然后,通过将其转换为String
来迭代返回的char[]
。然后分析每个char
并计算原始字符。可能会使用Map<Character, Integer>
。对于Map
中的每个元素,如果它位于Map
中,则按一次迭代。查询所需字符的Map
并在完成后打印结果。
public static void main(String[] args) {
CharacterFinder cf = new CharacterFinder();
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
Map<Character, Integer> resultsMap = cf.countChar(input);
System.out.println(resultsMap.get('g'));
}
// Note that 'null' means that it does not appear and if it is null, you ought print 0 instead.
// Also note that this method is case sensitive.
private Map<Character, Integer> countChar(String input) {
Map<Character, Integer> resultsMap = new HashMap<Character, Integer>();
for (int i = 0; i < input.length(); i++) {
Character element = input.charAt(i);
if (resultsMap.containsKey(element)) {
Integer cCount = resultsMap.get(element);
resultsMap.put(element, cCount + 1);
} else {
resultsMap.put(element, 1);
}
}
return resultsMap;
}
好吧,除非你已经知道你想要的char
。在这种情况下,请分析确切的char
。
public static void main(String[] args) {
CharacterFinder cf = new CharacterFinder();
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
// Call counting method and print
System.out.println(cf.countChar(input, '5'));
}
// Counting method
private int countChar(String input, char c) {
int x = 0;
for (int i = 0; i < input.length(); i++) {
if (input.charAt(i) == c) {
x++;
}
}
return x;
}
答案 2 :(得分:0)
如果您使用的是Java 8:
long count = String.valueOf(givenNumber).chars()
.filter(c -> c == (specifiedNumber + '0'))
.count();