Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8字符串处理-replaceFirst和replaceAll_Java_Java 8 - Fatal编程技术网

Java 8字符串处理-replaceFirst和replaceAll

Java 8字符串处理-replaceFirst和replaceAll,java,java-8,Java,Java 8,在Java8中是否有更好的方法来实现这一点,例如使用(…)的Stream.of if (messageBody.startsWith("\n\n")) { messageBody = messageBody.replaceFirst("\n", ""); } final String messageBodyFormatted = messageBody.replaceAll("\n", "<br />"); if(messageBody.startsWith(“\n\n”)

在Java8中是否有更好的方法来实现这一点,例如使用(…)的
Stream.of

if (messageBody.startsWith("\n\n")) {
    messageBody = messageBody.replaceFirst("\n", "");
}
final String messageBodyFormatted = messageBody.replaceAll("\n", "<br />");
if(messageBody.startsWith(“\n\n”)){
messageBody=messageBody.replaceFirst(“\n”和“);
}
最后一个字符串messageBodyFormatted=messageBody.replaceAll(“\n”和“
”);
这里有一个选项:

    if (messageBody.startsWith("\n\n")) {
        messageBody = messageBody.substring(1); // remove first newline
    }
    final String messageBodyFormatted = messageBody.replace("\n", "<br />");
if(messageBody.startsWith(“\n\n”)){
messageBody=messageBody.substring(1);//删除第一个换行符
}
最后一个字符串messageBodyFormatted=messageBody.replace(“\n”和“
”);

在if语句中,我只是删除第一个字符,因为我已经知道它是什么。如果你觉得这很微妙,就用你自己的版本吧。我用
replace()
更改了最后一个
replaceAll()
——尽管它的名称相同,但只使用了正则表达式。

您可以使用:
replaceFirst(“\n(?=\n)”,”)来摆脱该条件。我不认为Java 8会给你更多。这是否意味着你想让标题/尾随空格(而不是换行符)保持不变?@Maroun Maroun:这与
startsWith
检查的语义不同,后者要求出现在字符串的最开头。解决了这个问题,就有了一个更简单的解决方案:
replaceFirst(^\n\n,“\n”)
。事实上,java 8的盒子不需要打开。@JoopEggen,我同意。流很有趣,但我不想在这段代码中使用它们。Java 8中唯一不同的地方是使用Optionals代替if语句,即使如此,只有当您确实不喜欢定义变量时,它才有吸引力:Optional.of(messageBody.map(body->body.startsWith(“\n\n”)?body.substring(1):body.map(body->body.startsWith(“\n\n”)?body.substring(1):body.map(body->body.replace(“\n”,“
”).ifPresent(格式化->{/*执行操作*/})