簡體   English   中英

我應該如何計算Java中字符串開頭字符出現的次數

[英]How should I count the number of occurrences of a character at the beginning of a string in Java

我有一個類似於此的字符串,,,foo,bar ,我需要計算java中字符串開頭的“,”數量嗎?

有一個counter變量來計數出現的次數。 然后使用charAt(i)遍歷整個String以獲得位置i處的char 測試一下是否等於charAt(0) 如果是,則增加counter ,如果不是,則break循環。

看一下String javadoc 它包含可用於獲取String的長度並在某些位置獲取字符的方法。

如果知道起始字符,則構建一個正則表達式模式並獲得第一組。 第一組字符串將包含所需序列的精確匹配,該字符串的長度為結果計數。

一個簡單的循環(while或for),包含一個if,條件為相等,如果為true,則增加一個計數器。

這種快捷的解決方案為我工作。

public static void main(String[] args)
{
    String s = ",,,foo,bar";
    int count = 0;
    for (int i = 0; i < s.length() ; i++) {
        if (s.charAt(i) != ',')
            break;
        count++;
    }

    System.out.println("count " + count);
}

更新:剛剛意識到您只需要在字符串的開頭而不是中間計算','。 我已經更新了代碼來做到這一點。

如果您不想使用任何外部jar,只需編寫一個簡單的函數即可:

public static int countAtBegin(String str, char c) {
    for (int ret = 0; ret < str.length(); ret++) {
        if (str.charAt(ret) != c)
            return ret;
    }
    return str.length();
}

您也可以使用regexp:

public static int countCommasAtBegin(String str) {
    Matcher commas = Pattern.compile("^,*").matcher(str);
    if (commas.find()) {
        return commas.group().length();
    } else {
        return 0;
    }
}

但是對於這種瑣碎的任務,我更喜歡使用簡單循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM