字符串被两个字符分割成多个集合的元素。此时,只有英文字符的字母对有效,如果包含其他空格、数字或特殊字符,则该字母对将被丢弃。例如,如果输入“ab+”,则只有“ab”被视为multiset的元素,“b+”被丢弃。在多个集合元素之间进行比较时,忽略大小写字母之间的差异。”ab、“ab”和“ab”被视为同一元素。
我想把上面的每个部分都做成一个lambda。
ArrayList<String> aryChars1 = new ArrayList<String>();
String pattern = "^[a-zA-Z]";
for (int i = 0; i < str1.length() - 1; i++)
{
if (Pattern.matches(pattern, str1.substring(i, i+1))) {
aryChars1.add(str1.substring(i, i+2));
}
}
1条答案
按热度按时间k7fdbhmy1#
您的代码只检查两个字符集中的第一个字符是否为字母,例如。
"b+"
没有被丢弃。为了获得更好的性能,您应该只编译一次正则表达式模式。
既然您想使用lambda,我会这样做:
输出
正如你所看到的
"o "
这一对被丢弃。