我有一个TextField,其值如下所示。
input
在这里,我必须遍历文本字段并检查尖括号(<>)中是否存在文本。
尖括号内可以有空格或任何特殊字符。
我尝试使用NSPredicate以及componentsSeparatedByString,但是我无法在其中获取确切的文本。
有什么方法可以获取准确的文本以及尖括号。就像上面提到的示例一样,只需
@"Testing<Car>Testing<Car2>Working<Car3 /Car 4> on the code"
感谢Advance的帮助。
答案 0 :(得分:1)
可能的解决方案是正则表达式。模式检查<
,后跟一个或多个非>
字符和一个>
。
enumerateMatchesInString
提取子字符串并将其附加到数组中。最后,将数组展平为单个字符串。
NSString *string = @"Testing<Car>Testing<Car2>Working<Car3 /Car 4> on the code";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:@"<[^>]+>" options:0 error:nil];
__block NSMutableArray<NSString *> *matches = [NSMutableArray array];
[regex enumerateMatchesInString:string options:0 range:NSMakeRange(0, string.length) usingBlock:^(NSTextCheckingResult * _Nullable result, NSMatchingFlags flags, BOOL * _Nonnull stop) {
if (result) [matches addObject:[string substringWithRange:result.range]];
}];
NSLog(@"%@", [matches componentsJoinedByString:@", "]);
答案 1 :(得分:0)
我们可以用不同的方式解决它。现在,我展示一种方式。您可以将textFiled.text替换为str。
map.entrySet()
.stream()
.collect(Collectors.toMap(
Entry::getKey,
x -> x.getValue().stream()
.reduce(BigDecimal::add)
.orElse(BigDecimal.ZERO)));