2016-04-18 3 views
0

あなたに質問したいのですが、指定された数値がユーザーから与えられた数値(長)に何回あるかを数え、intとして出力したいと思います。指定された数値を数えよう

このコードを教えてもらえますか?

私の英語をお詫び申し上げます。

例:

<数指定= 4。与えられた数= 34434544;結果= 5.>

+0

文字列に変換してから、これを読んでください。http://stackoverflow.com/questions/275944/how-do-i-count-the-number-of-occurrences-of-a-char-in-a-string –

+0

文字列に変換する必要はありません: '%10'で値をテストし、4と等しいかどうかを確認してください。値を10で割ります。値がゼロになるまで繰り返す。 –

+0

私はそれを試してみる、ありがとう! – Attix

答えて

1

最下位桁は、あなたが探している数字に等しいかどうかをチェックします。 10で割ってもう一度チェックしてください。あなたがゼロに達するまで続けてください。

あなたは大きな数 valuedigitの発生をカウントしようとしている
int cnt = 0; 
while (value != 0) { 
    if (value % 10 == digit) ++cnt; 
    value /= 10; 
} 

0

ScannerSystem.inから入力します。その後、Stringを返して、char[]に戻して繰り返します。次に、それぞれcharを分析し、元の文字を数えます。おそらくこれにはMap<Character, Integer>を使用してください。 Mapの各要素については、Mapにある場合は1ずつ繰り返します。希望の文字を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; 
} 
+0

おかげで男、試してみます – Attix

+0

どういう意味ですか? 'long'を' int'に変換することを意味しますか? – ifly6

0

は、Java 8使用している場合:

long count = String.valueOf(givenNumber).chars() 
     .filter(c -> c == (specifiedNumber + '0')) 
     .count(); 
+0

あなたもありがとう:) – Attix

関連する問題