在传统方法中,我编写了这个简单的Java for循环。
我试图做的是,如果第一个筛选器检测到它是一个
那么我该如何实现这种
public String setString(String string) {
StringBuilder stringBuilder = new StringBuilder();
// This for loop I want to convert into stream.
for (char c : string.toCharArray()) {
if (Character.isSpaceChar(c))
stringBuilder.append(c);
else if (isBangla(c))
stringBuilder.append(get(c));
}
return stringBuilder.toString();
}
String get(int c) {
return keyMap.getMap((char) c); // Map<Character, String> keyMap
}
boolean isBangla(int codePoint) {
return ((codePoint >= BANGLA_CHAR_START && codePoint <= BANGLA_CHAR_END) &&
(codePoint <= BANGLA_NUMBER_START || codePoint >= BANGLA_NUMBER_END)));
}
我尝试过做类似这样的事情。
String str = string.chars()
.filter(i -> Character.isSpaceChar(i)) // if this is true need to add string
.filter(this::isBangla)
.mapToObj(this::get)
.collect(Collectors.joining());
我试图做的是,如果第一个筛选器检测到它是一个
spaceChar
,那么它将不会进行任何进一步的流处理,而是跳转到collect
。那么我该如何实现这种
if/else
情况以跳过下一个流操作呢?提前感谢您的帮助。