输出
在Java编程中,我们经常使用System.out.println()
方法来向控制台输出信息,并在输出后自动换行。这个方法是println
的缩写,意味着”print line”。如果我们需要输出内容但不希望在末尾添加换行符,可以使用System.out.print()
方法:
public class Main {
public static void main(String[] args) {
System.out.print("A,"); // 输出"A,"后不换行
System.out.print("B,"); // 输出"B,"后不换行
System.out.print("C."); // 输出"C."后不换行
System.out.println(); // 输出换行
System.out.println("END"); // 输出"END"后换行
}
}
观察上述代码的执行效果,可以看到前三项输出内容是连续的,没有换行,而之后的两个输出项则各自独占一行。
对于数据的格式化输出,Java提供了System.out.printf()
方法。这个方法允许我们按照指定的格式输出数据,使得输出结果更加符合人类的阅读习惯。例如,对于浮点数,如果不进行格式化,Java会以科学记数法的形式输出:
public class Main {
public static void main(String[] args) {
double d = 12900000;
System.out.println(d); // 输出1.29E7
}
}
为了将浮点数按照我们期望的格式显示,比如固定小数点后的位数,我们可以使用printf()
方法,并在格式字符串中使用占位符%
来指定格式化规则:
// 格式化输出
public class Main {
public static void main(String[] args) {
double d = 3.1415926;
System.out.printf("%.2f\n", d); // 显示两位小数,输出3.14
System.out.printf("%.4f\n", d); // 显示四位小数,输出3.1416
}
}
Java提供了强大的格式化功能,允许我们以各种方式将数据转换成字符串形式输出。这些格式化操作是通过System.out.printf()
方法实现的,它使用特定的占位符来指定数据的输出格式。以下是一些常用的占位符及其说明:
%d
:用于格式化输出十进制整数。%x
:用于格式化输出十六进制整数,字母以小写形式表示。%f
:用于格式化输出浮点数,可指定小数点后的位数。%e
:用于格式化输出科学计数法表示的浮点数。%s
:用于格式化输出字符串。
值得注意的是,由于%
符号被用作格式化的前缀,所以当我们需要在输出中直接显示一个%
字符时,需要使用两个连续的%%
来表示。
除了基本的占位符,printf()
方法还允许我们添加详细的格式化参数,以便更精确地控制输出格式。例如,我们可以指定输出的宽度、是否左对齐、小数点后保留的位数等。以下是一个格式化整数为十六进制并用0
补足固定位数的例子:
public class Main {
public static void main(String[] args) {
int n = 12345000;
// 使用%08x格式化n为十六进制数,并确保至少有8位,不足的前面补0
System.out.printf("n=%d, hex=%08x%n", n, n);
// 输出结果类似于:n=12345000, hex=0xc0a7d14
}
}
在这个例子中,%08x
指示printf()
方法输出十六进制数,并且至少占用8个字符的宽度,如果不足8位,则在前面补0
。%n
是一个特殊的转义序列,用于输出当前平台的换行符。
有关详细的格式化参数和更多高级格式化选项,可以参考Java官方文档中的java.util.Formatter
类。
输入
在Java中,处理输入通常比输出更为复杂。一个常见的例子是使用Scanner
类从控制台读取用户输入的字符串和整数。以下是如何实现这一过程的步骤:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建Scanner对象
System.out.print("Input your name: "); // 打印提示
String name = scanner.nextLine(); // 读取一行输入并获取字符串
System.out.print("Input your age: "); // 打印提示
int age = scanner.nextInt(); // 读取一行输入并获取整数
System.out.printf("Hi, %s, you are %d\n", name, age); // 格式化输出
}
}
首先,我们需要导入java.util.Scanner
类,这是Java提供的一个便捷工具,用于解析文本并获取不同类型的输入。导入语句通常放在Java源代码文件的顶部。
接下来,我们创建一个Scanner
对象,它将用于接收用户的输入。Scanner
对象的构造函数接受一个输入流作为参数,在这里我们使用System.in
,它代表标准输入流,也就是键盘输入。
有了Scanner
对象之后,我们可以使用它来读取用户的输入。nextLine()
方法用于读取用户输入的一行文本,并将其作为字符串返回。而nextInt()
方法则用于读取用户输入的下一个整数。
最后,我们使用printf()
方法来格式化输出读取到的信息。
为了测试这个程序,我们需要先编译它:
$ javac Main.java
编译成功后,运行编译生成的类文件:
$ java Main
在控制台中按照提示输入相应的信息,程序将会输出格式化后的问候语。