为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用换行符参数

如何使用换行符参数

侃侃尔雅 2021-10-13 10:41:39
我写了最简单的Hello, World! 应用:public class Helloworld {    public static void main(String[] args) {        System.out.println("Hello\nHello");    }}当它运行时,结果是:HelloHello但如果我Hello\nHello用作参数,public class Helloworld {    public static void main(String[] args) {        System.out.println(args[0]);    }}结果是Hello\nHello。我如何获得两行结果?
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

编辑:此答案适用于理解为的原始问题

为什么当我用Hello\nHelloJava编写然后打印它时,我得到两行文本,但是当我Hello\nHello在终端中编写并将其作为参数传递给我的 Java 程序时,我得到一行文本?

如果你的意思是

有没有办法将一个字符串参数传递给我的java程序,该程序打印在多行上?

请参阅@DodgyCodeException's answer,它更适合该公式。


当您在 Java 中定义Stringas"Hello\nHello"时,它不包含任何'\'字符。它是换行符的转义序列:"\n"只是一个字符。但是,当您将此字符串用作程序的参数时(因此字符串在之外定义),将"\n"被解释为两个字符:'\''n'。你必须用换行符替换这两个字符,知道要匹配'\'你必须用'\'

System.out.println(args[0].replace("\\n", "\n"));

对于可移植性问题,您还可以System.lineSeparator()用作替换字符串。


查看完整回答
反对 回复 2021-10-13
?
catspeake

TA贡献1111条经验 获得超0个赞

显然你不能马上做,但做以下技巧会得到你需要的东西:

System.out.println(String.format(args[0]));

这里使用String#format 并将新行作为新行的转换序列传递。(请参阅格式字符串语法)。

所以调用你的程序

java Helloworld "hello%nnworld"

将打印

hello
workd

如果你需要输出%n自己,那么你可以用另一个 '%' 引用 '%' 即

java Helloworld "hello%%nnworld"

以上将打印:

hello%nnworld


查看完整回答
反对 回复 2021-10-13
  • 3 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信