[英]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.