Java 回车 return \r 似乎无法正常工作
Java carriage return \r doesn't seem to work correctly
这是我的 java 代码:
// file name is Strings.java
public class Main {
public static void main(String[] args){
String txt = "Hello\rWorld!";
System.out.println(txt);
String txt2 = "Trying\rthis";
System.out.println(txt2);
}
}
我试着从我的终端执行它,看到了这个:
$ java Strings.java
World!
thisng
我也试过从Visual Studio代码执行这个,结果相同。所以输出与 this tutorial 中所写的不同。有人可以告诉我为什么吗?谢谢!
这取决于操作系统:Linux (\n
), Mac (\r
), Windows (\r\n
) .都有不同的 new line
符号。参见 Adding a Newline Character to a String in Java。
要获得实际组合,请使用:
System.lineSeparator()
根据你的例子:
System.out.println("Hello" + System.lineSeparator() + "World!");
System.out.println("Trying" + System.lineSeparator() + "this");
输出:
$ java Strings.java
Hello
World!
Trying
World!
this
这有点难看,但是一个通用的解决方案。
P.S. 作为替代方案,您可以使用 System.out.format()
代替:
System.out.format("Hello%nWorld!%n");
System.out.format("Trying%nthis%n");
P.P.S. 我认为一般来说最好构建一个行列表并使用 System.out.println()
:
Arrays.asList("Hello", "World!").forEach(System.out::println);
Arrays.asList("Trying", "this!").forEach(System.out::println);
您还可以将 format
与 %n
一起使用,后者已被平台行分隔符取代,因此可以使用:
System.out.format("Hello%nWorld!%n");
这是我的 java 代码:
// file name is Strings.java
public class Main {
public static void main(String[] args){
String txt = "Hello\rWorld!";
System.out.println(txt);
String txt2 = "Trying\rthis";
System.out.println(txt2);
}
}
我试着从我的终端执行它,看到了这个:
$ java Strings.java
World!
thisng
我也试过从Visual Studio代码执行这个,结果相同。所以输出与 this tutorial 中所写的不同。有人可以告诉我为什么吗?谢谢!
这取决于操作系统:Linux (\n
), Mac (\r
), Windows (\r\n
) .都有不同的 new line
符号。参见 Adding a Newline Character to a String in Java。
要获得实际组合,请使用:
System.lineSeparator()
根据你的例子:
System.out.println("Hello" + System.lineSeparator() + "World!");
System.out.println("Trying" + System.lineSeparator() + "this");
输出:
$ java Strings.java
Hello
World!
Trying
World!
this
这有点难看,但是一个通用的解决方案。
P.S. 作为替代方案,您可以使用 System.out.format()
代替:
System.out.format("Hello%nWorld!%n");
System.out.format("Trying%nthis%n");
P.P.S. 我认为一般来说最好构建一个行列表并使用 System.out.println()
:
Arrays.asList("Hello", "World!").forEach(System.out::println);
Arrays.asList("Trying", "this!").forEach(System.out::println);
您还可以将 format
与 %n
一起使用,后者已被平台行分隔符取代,因此可以使用:
System.out.format("Hello%nWorld!%n");