2016-04-18 48 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

檢查最低顯著位是否等於您正在搜索的數字;然後除以十再檢查;繼續前進,直到你達到零。

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

如果你想算的digit的出現在大數目value

0

使ScannerSystem.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; 
} 
+0

謝謝你,我會試試 – Attix

+0

你是什麼意思?你的意思是把'long'轉換成'int'? – ifly6

0

如果您使用的是Java 8:

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

謝謝你:) – Attix

相關問題