java中的\ t中包含多少空格

时间:2018-03-18 07:53:27

标签: java

public class Example1 {
    public static void main(String[] args) {

        System.out.println("h\tw");
        System.out.println("h   w");
        System.out.println("hello\tworld");
        System.out.println("hello   world");


    }
}

这给了我下面的输出 output

在第一个\ t = 7个空格中,在第二个时间\ t = 3个空格 这是什么原因?

2 个答案:

答案 0 :(得分:2)

该选项卡的工作方式类似于4或8的乘法,具体取决于您使用的console。首先,控制台打印在选项卡之前包含1个字符h。因此,h&之间会有7个空格。 W上。在第二种情况下,hello长度为5 char,因此hello和world之间会有3个空格。

注意:你提到h and w之间有6个空格,但我相信这将是7个空格。 对于以下示例:

System.out.println("helloworld\tworld"); // line 1
System.out.println("helloworld      world");

第1行将生成helloworld world作为输出。现在,helloworld10个字符。我假设您的控制台正在使用8乘法主体。因此,大于10的最低乘法是8*2 =16.因此会有16-10 = 6个空格。

答案 1 :(得分:1)

Tab实际上添加了一个可变长度,但它有一个最大长度。想象一下tab-stop每8个字符(只是垂直线,停止的地方是你使用标签)

|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _|

如果您使用此字符串“Hello \ tWorld”,它将移至Hello之后的下一个制表位。

|H E L L O _ _ _|W O R L D _ _ _|

同样适用于较短的字符串,如'h \ tw'

|H _ _ _ _ _ _ _|W _ _ _ _ _ _ _|