Não diga nada, vamos para o código e descobrir primeiro:
Código 1:
package demo;
import java.util.Scanner;
public class TextNext {
public static void main(String[] args) {
Scanner input = new Scanner(System .in);
System.out.println("请输入str1:");
String str1 = input.next();
System.out.println("请输入str2:");
String str2 = input.nextLine();
System.out.println("str1:" + str1);
System.out.println("str2:" + str2);
}
}
Insira um espaço e pressione Enter
. Há um espaço entre os caracteres e
insira os caracteres diretamente.
Código 2:
package demo;
import java.util.Scanner;
public class TextNext {
public static void main(String[] args) {
Scanner input = new Scanner(System .in);
System.out.println("请输入str1:");
String str1 = input.nextLine();
System.out.println("请输入str2:");
String str2 = input.nextLine();
System.out.println("str1:" + str1);
System.out.println("str2:" + str2);
}
}
Insira um espaço primeiro e adicione um espaço entre os caracteres.
Insira os caracteres e pressione Enter
diretamente.
Com base nos resultados da execução do código acima, podemos resumir as seguintes conclusões:
1. Ao usar next () para receber caracteres de teclado, se você inserir um espaço antes, insira a tecla, a tecla Tabd será omitida, ou seja, a entrada será realizada somente quando next () ler o conteúdo válido;
2.next () irá inserir a tecla de espaço, Enter e a tecla Tab após a leitura do caractere válido. É considerada um separador ou terminador, então next () não pode receber uma string com espaços;
3. O terminador de nextLine () é apenas a tecla Enter, e você pode usar nextLine ( ) para obter uma string com espaços;
4. Preste atenção ao usar os dois métodos juntos: Ao usar next () e nextLine (), pode haver casos em que o valor de str2 não pode ser inserido no código 1, porque nextLine () lê automaticamente a tecla Tab e a barra de espaço em next (), O conteúdo por trás da tecla Enter, e nextLine () pode receber espaços, então haverá casos em que str2 não pode ser digitado no teclado. A solução é usar nextLine () após o próximo ().