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

Java 连续多个空格转换为一个空格 java输入怎么用空格隔开_java

-----------------------------------------------------------------------------------------------

(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

Java 连续多个空格转换为一个空格 java输入怎么用空格隔开_Java 连续多个空格转换为一个空格_02

-----------------------------------------------------------------------------------------------

(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

Java 连续多个空格转换为一个空格 java输入怎么用空格隔开_java_03

-----------------------------------------------------------------------------------------------

(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

Java 连续多个空格转换为一个空格 java输入怎么用空格隔开_分隔符_04

-----------------------------------------------------------------------------------------------

注意:

(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

Java 连续多个空格转换为一个空格 java输入怎么用空格隔开_分隔符_05