我有字符串
a.b.c.d
我想数一下'的出现次数。,最好是一句单句俏皮话。
(之前我把这个约束表述为“不使用循环”,以防你想知道为什么每个人都试图在不使用循环的情况下回答)。
我有字符串
a.b.c.d
我想数一下'的出现次数。,最好是一句单句俏皮话。
(之前我把这个约束表述为“不使用循环”,以防你想知道为什么每个人都试图在不使用循环的情况下回答)。
当前回答
这就是我用来计算字符串出现次数的方法。
希望有人觉得有用。
private long countOccurrences(String occurrences, char findChar){
return occurrences.chars().filter( x -> {
return x == findChar;
}).count();
}
其他回答
如果你使用Spring框架,你也可以使用“StringUtils”类。 方法是“countOccurrencesOf”。
这里是最简单和容易理解的,不使用数组,只需使用Hashmap。此外,它将计算空白,大写字符和小字符的数量,特殊字符等。
import java.util.HashMap;
//The code by muralidharan
public class FindChars {
public static void main(String[] args) {
findchars("rererereerererererererere");
}
public static void findchars(String s){
HashMap<Character,Integer> k=new HashMap<Character,Integer>();
for(int i=0;i<s.length();i++){
if(k.containsKey(s.charAt(i))){
Integer v =k.get(s.charAt(i));
k.put(s.charAt(i), v+1);
}else{
k.put(s.charAt(i), 1);
}
}
System.out.println(k);
}
}
O / P: {e = r = 12日13}
第二个输入:
findchars("The world is beautiful and $#$%%%%%%@@@@ is worst");
O / P: {@ = 4 = 7, = 2, b = 1, # = 1, d = 2, = 2美元,e = 2, % = 6 f = 1, h = 1, i = 3 l = 2, n = 1, o = 2, r = 2, = 3, T = 1, T = 2, u = 2, w = 2}
public class OccurencesInString { public static void main(String[] args) { String str = "NARENDRA AMILINENI"; HashMap occur = new HashMap(); int count =0; String key = null; for(int i=0;i<str.length()-1;i++){ key = String.valueOf(str.charAt(i)); if(occur.containsKey(key)){ count = (Integer)occur.get(key); occur.put(key,++count); }else{ occur.put(key,1); } } System.out.println(occur); } }
也可以在Java 8中使用reduce来解决这个问题:
int res = "abdsd3$asda$asasdd$sadas".chars().reduce(0, (a, c) -> a + (c == '$' ? 1 : 0));
System.out.println(res);
输出:
3
一个更简单的解决方案是根据匹配的字符拆分字符串。
例如,
int getOccurences(字符串字符,字符串){ 字符串[]words = String .split(字符); 回来的话。长度- 1; }
这将在以下情况下返回4: getOccurences(“o”,“关于一只敏捷的棕色狐狸的事情”);