我有一段代码,我用它来组合两个字符串。
String result = Stream.of(student.getFirstName(), student.getLastName())
.filter(Objects::nonNull)
.collect(Collectors.joining(". "));
很少有名字包含";在字符串的末尾。所以我想添加一个if条件来检查字符串是否包含"。"在最后然后跳过Collectors.join(".")
Edit-student.getLastName()
将返回一个包含"."的字符串。最后。我也想保持原样。
在Java流中没有if/else。如果名称包含一个点作为首字母,则使用Stream.map
删除点,然后使用Collectors.join(".")
String result = Stream.of(student.getFirstName(), student.getLastName())
.filter(Objects::nonNull)
.map(name -> name.endsWith(".") ? name.substring(0, name.length() - 1) : name)
.collect(Collectors.joining(". "));
您可以使用String.replace()
:
String firstName = student.getFirstName().replace('.', '');
虽然我不确定为什么你需要在你的场景中使用Stream
,你可以简单地做:
String result = student.getFirstName().replace('.', '') + "." + student.getLastName();
或者类似的