Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 为什么“\t”不创建选项卡?_Java_String_Indentation_Bluej - Fatal编程技术网

Java 为什么“\t”不创建选项卡?

Java 为什么“\t”不创建选项卡?,java,string,indentation,bluej,Java,String,Indentation,Bluej,我希望模块Code=和Result=用一个选项卡隔开,但每当我运行下面的代码时,它实际上只是输出 "Module Code = Biology\tResult = 40.0" 为什么“\t”不创建新行 这是因为“\t”是一个表格,而不是新行“\n” 如果你需要一条新线路,试试看 return "Module Code = " + moduleCode + "\n" + "Result = " + result; 问题是您正在BlueJ窗口中查看生成的字符串的值。该窗口对于调试来说是很好的,但

我希望模块Code=和Result=用一个选项卡隔开,但每当我运行下面的代码时,它实际上只是输出

"Module Code = Biology\tResult = 40.0"
为什么“\t”不创建新行

这是因为“\t”是一个表格,而不是新行“\n”

如果你需要一条新线路,试试看

return "Module Code = " + moduleCode + "\n" + "Result = " + result;

问题是您正在BlueJ窗口中查看生成的字符串的值。该窗口对于调试来说是很好的,但它不会表现出与适当的输出设备相同的行为,特别是对于换行符、制表符等字符。这些字符仍将与其转义序列一起显示,就像您在源代码中键入它们一样

换句话说,您的toString方法很好,并且它可以按预期工作。如果你想看到正确格式化的结果,不要使用BlueJ-print在其他地方查看它们。控制台是一个不错的选择:

System.out.println(module.toString());

\t是一个表格,不是一个新行。新行是\n。如果它在单引号中,则它是一个字符:char tabChar='\t';如果是双引号,那只是一个逃逸的t。@Kylar:不,那根本不是真的。你已经有账单了。但是,该选项卡的呈现方式将取决于您对字符串所做的操作,而且您还没有告诉我们任何相关信息。@aleb2000:这将以完全相同的方式进行操作。很抱歉,这是一个打字错误,我更改了标题。我需要一个标签,不是新的一行。我怎样才能上班?
System.out.println(module.toString());