Java中从键盘输入字符串的方式:
1、使用Scanner
(1)in.useDelimiter("\n")和str = in.nextLine()配合使用时,可以首次输入空行
import java.util.Scanner;
public static void main(String[] args){
String str = null;
int len = 0;
Scanner in = new Scanner(System.in);
in.useDelimiter("\n"); //设置分隔符----一行以此作为分隔符
System.out.println("请输入,按Enter键换行,按Ctrl+Z结束。");
while(in.hasNext()){ //判断是否继续有输入,按Enter表示确定输入,可以按Ctrl+Z结束。
str = in.nextLine(); //输入行可以包含空格、空行、且首行也可以输入是空行
len = str.length();
System.out.println("输入的字符串为:"+str+" 长度为:"+len);
str = null;
}
in.close();
System.out.println("结束");
}
运行结果见 Scanner1.jpg
-----------------------------------------------------------------------------------------------
(2)in.useDelimiter("\n")和str = in.next()配合使用时,可以首次输入空行,但是分隔符也作为输入字符
import java.util.Scanner;
public static void main(String[] args){
String str = null;
int len = 0;
Scanner in = new Scanner(System.in);
in.useDelimiter("\n"); //设置分隔符----一行以此作为分隔符
System.out.println("请输入,按Enter键换行,按Ctrl+Z结束。");
while(in.hasNext()){ //判断是否继续有输入,按Enter表示确定输入,可以按Ctrl+Z结束。
str = in.next(); //可以输入空格、空行,且分隔符也作为输入字符
len = str.length();
System.out.println("输入的字符串为:"+str+" 长度为:"+len);
str = null;
}
in.close();
System.out.println("结束");
}
运行结果见 Scanner2.jpg
-----------------------------------------------------------------------------------------------
(3)默认分隔符时,使用in.nextLine(),
import java.util.Scanner;
public static void main(String[] args){
String str = null;
int len = 0;
Scanner in = new Scanner(System.in);
System.out.println("请输入,按Enter键换行,按Ctrl+Z结束。");
while(in.hasNext()){ //判断是否继续有输入,按Enter表示确定输入,可以按Ctrl+Z结束。
str = in.nextLine(); //输入行可以包含空格、空行,但是输入空行后,按Enter键后没作用
len = str.length();
System.out.println("输入的字符串为:"+str+" 长度为:"+len);
str = null;
}
in.close();
System.out.println("结束");
}
运行结果见 Scanner3.jpg
-----------------------------------------------------------------------------------------------
(4)默认分隔符时,使用in.next(),输入行不包含空格、空行
import java.util.Scanner;
public static void main(String[] args){
String str = null;
int len = 0;
Scanner in = new Scanner(System.in);
System.out.println("请输入,按Enter键换行,按Ctrl+Z结束。");
while(in.hasNext()){ //判断是否继续有输入,按Enter表示确定输入,可以按Ctrl+Z结束。
str = in.next(); //输入行不能包含空格、空行
len = str.length();
System.out.println("输入的字符串为:"+str+" 长度为:"+len);
str = null;
}
in.close();
System.out.println("结束");
}
运行结果见 Scanner4.jpg
-----------------------------------------------------------------------------------------------
注意:
(1)在默认情况下,Scanner使用空白(包括空格、Tab空白、回车)作为多个输入项之间的分隔符。
即作为Scanner.hasNext()确定输入的判断依据,一般配合Scanner.useDelimiter("判断依据")使用。
(2) str = Scanner.nextLine(); //输入行可以包含空格、空行
str = Scanner.next(); //输入行不能包含空格
(3)有Scanner.hasNext()作为判断条件时,可以按Ctrl+Z结束。
!!!! 本来就不理解这里是怎么回事,现在试验后更摸不着头脑了 !!!!
-----------------------------------------------------------------------------------------------
2、使用BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public static void main(String[] args){
String str = null;
int len = 0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入字符串");
try{
str = br.readLine(); //输入行可以包含空格、空行
br.close();
}catch(IOException ex){
ex.printStackTrace();
}
len = str.length();
System.out.println("输入的字符串为:"+str+" 长度为:"+len);
}
运行结果见 BufferedReader.jpg