【发布时间】:2023-01-12 21:23:23
【问题描述】:
我知道有不同的方法可以解决这个任务,但我需要一种使用 replaceAll() 方法的特定方法。我只是在表达式中坚持正确的条件。
所以我有这样的方法:
public static void handleComments(List<Comment> comments, int maxTextLength) {
comments.replaceAll(comment -> comment.getText().length() > maxTextLength ? *what should be here?* : comment);
}
class Comment {
private final String text;
... getter and setter
接下来是案例:我将一些 cmets 和最大评论长度传递给方法。该方法应采用 cmets 列表,然后,如果评论长度 > maxTextLength,它返回新评论,该评论是原始评论的副本,但更短(具有 maxTextLength 个字符),如果评论长度 < maxTextLength,它只返回相同的内容评论(或者它也可以是具有相同字符数的副本)。
更新: 示例如下 - 我们限制(输入)每个字符串 30 个字符,如果 (>) 超过 30 个字符,该方法将删除每个注释中的所有字符。
示例输入:
30
好美!它在哪里?
我不知道,我刚找到在网上!
完美的!
示例输出:
好美!它在哪里
我不知道,我刚找到
完美的!
【问题讨论】:
-
你能给出一些具体的例子,说明你希望在传递特定参数时改变什么,你希望保持不变的东西(以及为什么),...
-
你想切断你的字符串以适应最大长度吗?如果是这种情况,使用 replaceAll 确实不是可行的方法。
-
听起来像带有条件运算符
?:的子字符串会更好。 -
尝试使用 comment.substr(comment.getText(), maxTextLength)
-
为什么不用
substring?听起来这个用例 100% 匹配
标签: java string collections