2016-04-18 13 views
0

Ich möchte Ihnen eine Frage stellen, ich möchte zählen, wie oft eine angegebene Zahl in einer bestimmten Zahl (lang) vom Benutzer und drucken Sie es als Int.Zählen Sie eine bestimmte Nummer

Könnten Sie mir bitte mit diesem Code helfen?

Entschuldigung für mein Englisch.

Beispiel:

< Nummer spezifiziert = 4; Nummer angegeben = 34434544; Ergebnis = 5.>

+0

In String konvertieren, dann lesen Sie diese http://stackoverflow.com/questions/275944/how-do-i-count-the-number-of-occurrences-of-a-char-in-a-string –

+0

Keine Notwendigkeit, zu einem String zu konvertieren: Testen Sie einfach den Wert mit '% 10', sehen Sie, ob es gleich dem 4 ist; Dann dividiere den Wert mit 10. Wiederhole, bis der Wert Null ist. –

+0

Ich werde es ausprobieren, danke euch allen! – Attix

Antwort

1

Überprüfen Sie, ob die am wenigsten signifikante Ziffer der Ziffer gleich Sie suchen; dann dividiere durch zehn und überprüfe nochmals; mach weiter bis du Null erreichst.

int cnt = 0; 
while (value != 0) { 
    if (value % 10 == digit) ++cnt; 
    value /= 10; 
} 

Wo Sie versuchen, das Auftreten von digit in der großen Zahl value zu zählen.

0

Geben Sie Scanner ein, um die Eingabe von System.in zu erhalten. Dann durchlaufen Sie die String zurückgegeben, indem Sie es in eine char[]. Dann analysieren Sie jede char und zählen Originalzeichen. Verwenden Sie dazu wahrscheinlich einen Map<Character, Integer>. Für jedes Element in der Map, iterieren Sie um eins, wenn es in der Map ist. Fragen Sie die Map nach Ihrem gewünschten Charakter und drucken Sie das Ergebnis, wenn Sie fertig sind.

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; 
} 

Nun, es sei denn, Sie bereits wissen, die char Sie wollen. Analysieren Sie in diesem Fall genau 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

Danke dir Mann, ich werde versuchen – Attix

+0

Was meinst du? Du meinst ein 'long' in ein' int' umzuwandeln? – ifly6

0

Wenn Sie mit Java 8:

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

Danke dir auch :) – Attix

Verwandte Themen