【发布时间】:2018-10-10 23:41:17
【问题描述】:
public static int countLetter(String[] x, String y){
int count = 0;
for(int i = 0; i < x.length; i++){
for(int h = 0; h < x[i].length(); h++){
String yo = new String(x[i].substring(h,h+1));
if(yo==y){
count++;}
}
}
return count;
}
}
我的方法应该返回一个整数,该整数计算字母在数组的所有字符串中出现的总次数。 (假设字符串是一个字母,我不能使用 charAt())。
【问题讨论】:
-
return (int)Arrays.stream(x).map(Pattern.compile(y, Pattern.LITERAL)::matcher).flatMap(Matcher::results).count(); -
return Stream.of(x).flatMap(s -> s.chars().mapToObj(i -> (char) i)).filter(s -> s.equals(y.charAt(0))).count(); -
绝对不需要
new String(..)子字符串(在Java 6 及更早版本中(可能还有早期Java 7 版本),但这个原因已不复存在)。
标签: java arrays string substring