2014-03-01 66 views
0

是否有java內置方法來計算字符串中char字符的出現? 例如: s= "Hello My name is Joel"l出現次數爲3Java內置方法 - 在字符串中出現char字符

由於

+0

我不這麼認爲。您可以遍歷字符串中的char數組(toCharArray())並使用Map 進行計數。如果密鑰存在計數整數1,否則新的條目與startvalue 1.如果您只搜索一個字符...使用REGEX:http://stackoverflow.com/questions/6100712/simple-way-to-count-character-字符串出現 – pL4Gu33

+0

番石榴['Multiset']的良好應用(https://code.google.com/p/guava-libraries/wiki/NewCollectionTypesExplained) – 2014-03-01 17:07:43

+0

@RC:如果您要使用番石榴,你可以在單行'CharMatcher.is('l')。countIn(string)'中做它。 –

回答

0

如果要計算特定字符串中出現多個字符的次數,則需要映射字符與他們在字符串中的出現次數將是一個不錯的選擇。下面是在這種情況下如何實現解決方案:

import java.util.HashMap; 
import java.util.Map; 

public class CharacterMapper 
{ 
    private Map<Character, Integer> charCountMap; 

    public CharacterMapper(String s) 
    { 
    initializeCharCountMap(s); 
    } 

    private void initializeCharCountMap(String s) 
    { 
    charCountMap = new HashMap<>(); 
    for (int i = 0; i < s.length(); i++) 
    { 
     char ch = s.charAt(i); 
     if (!charCountMap.containsKey(ch)) 
     { 
     charCountMap.put(ch, 1); 
     } 
     else 
     { 
     charCountMap.put(ch, charCountMap.get(ch) + 1); 
     } 
    } 
    } 

    public int getCountOf(char ch) 
    { 
    if (charCountMap.containsKey(ch)) 
     return charCountMap.get(ch); 
    return 0; 
    } 

    public static void main(String[] args) 
    { 
    CharacterMapper ob = new CharacterMapper("Hello My name is Joel"); 
    System.out.println(ob.getCountOf('o')); // Prints 2 
    } 
} 
相關問題