从控制台读取Java字符串

时间:2020-02-23 14:36:47  来源:igfitidea点击:

今天,我们将研究从Java中的控制台读取字符串的不同方法。

从控制台读取Java字符串

我们可以使用以下类从控制台读取输入。

  • 缓冲读取器
  • 扫描器

使用BufferedReader从控制台读取Java字符串

BufferedReader类来自Java IO包。
我们可以使用BufferedReader从字符输入流中读取文本。
下面是一个简单的程序,可从控制台读取字符串数据并以小写形式打印。

package com.theitroad.examples;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class JavaReadFromConsoleBufferedReader {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("Enter Input String:");
		String input = br.readLine();
		br.close();
		System.out.println("Input String in Lower Case = " + new String(input).toLowerCase());
	}
}

下面是上述程序的一个示例运行所产生的输出。

Enter Input String:
Java Developer
Input String in Lower Case = java developer

使用扫描仪从控制台读取Java

如果您注意到上面的代码,则BufferedReader并不灵活,并且选项非常有限。
我们只能将输入数据读取为String。
因此,Java 1.5中引入了Scanner类,以便可以从控制台中读取许多选项。

我们可以使用Scanner类将String,原始数据类型(如int,long等)读取为String。
我们还可以读取不同基数的输入数字(如二进制)并将其读取为整数。
让我们看一下如何使用Scanner类从控制台读取输入数据。

package com.theitroad.examples;

import java.util.Scanner;

public class JavaReadStringFromConsoleScanner {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		System.out.println("Please enter a String:");
		String input = sc.nextLine();
		System.out.println("Input String in Upper Case = " + input.toUpperCase());

		System.out.println("Please enter a integer in Binary Format:");
		int i = sc.nextInt(2);
		System.out.println("Number in Decimal = " + i);

		sc.close();
	}

}

下面是上述程序在执行时产生的输出,并且在Console中提供了输入。

Please enter a String:
Java Read String using Scanner Class
Input String in Upper Case = JAVA READ STRING USING SCANNER CLASS
Please enter a integer in Binary Format:
110110
Number in Decimal = 54