我有一个类似于这个,,,foo,bar
的字符串,我需要在java的字符串开头计算“,”的数量吗?
答案 0 :(得分:2)
有一个counter
变量来计算出现次数。然后使用String
循环遍历整个charAt(i)
,以获得位置char
的{{1}}。测试它是否等于i
。如果是,则递增charAt(0)
,如果不是,则counter
退出循环。
答案 1 :(得分:1)
看看String javadoc。它包含可用于获取String长度并在特定位置获取字符的方法。
答案 2 :(得分:1)
如果已知起始字符,则构建正则表达式模式并获取第一个组。第一组字符串将包含所需序列的完全匹配,此字符串的长度是结果计数。
答案 3 :(得分:0)
一个简单的循环(while或for)包含一个if,如果为true则应该增加一个计数器的相等条件就足够了。
答案 4 :(得分:0)
这种快速解决方案对我有用。
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);
}
更新:刚刚意识到你只需要计算字符串开头的','而不是中间数。我已经更新了代码来做到这一点。
答案 5 :(得分:0)
如果您不想使用任何外部罐子,只需编写一个简单的函数:
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();
}
答案 6 :(得分:0)
您也可以使用regexp:
public static int countCommasAtBegin(String str) {
Matcher commas = Pattern.compile("^,*").matcher(str);
if (commas.find()) {
return commas.group().length();
} else {
return 0;
}
}
但是对于这样简单的任务,我更喜欢使用简单的循环。