猿问

如何使用换行符参数

我写了最简单的Hello, World! 应用:


public class Helloworld {


    public static void main(String[] args) {

        System.out.println("Hello\nHello");

    }

}

当它运行时,结果是:


Hello

Hello

但如果我Hello\nHello用作参数,


public class Helloworld {


    public static void main(String[] args) {

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

    }

}

结果是Hello\nHello。我如何获得两行结果?


侃侃尔雅
浏览 179回答 3
3回答

肥皂起泡泡

编辑:此答案适用于理解为的原始问题为什么当我用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()用作替换字符串。

catspeake

显然你不能马上做,但做以下技巧会得到你需要的东西:System.out.println(String.format(args[0]));这里使用String#format 并将新行作为新行的转换序列传递。(请参阅格式字符串语法)。所以调用你的程序java Helloworld "hello%nnworld"将打印hello workd如果你需要输出%n自己,那么你可以用另一个 '%' 引用 '%' 即java Helloworld "hello%%nnworld"以上将打印:hello%nnworld
随时随地看视频慕课网APP

相关分类

Java
我要回答