Bon*_*t09 21 java java.util.scanner
我正在编写一个程序,允许用户输入他的数据然后输出它.它的3/4是正确的但是当它到达输出地址时它只打印一个字,只能说'Archbishop'来自'Archbishop Street'.我该如何解决?
import java.util.*;
class MyStudentDetails{
public static void main (String args[]){
Scanner s = new Scanner(System.in);
System.out.println("Enter Your Name: ");
String name = s.next();
System.out.println("Enter Your Age: ");
int age = s.nextInt();
System.out.println("Enter Your E-mail: ");
String email = s.next();
System.out.println("Enter Your Address: ");
String address = s.next();
System.out.println("Name: "+name);
System.out.println("Age: "+age);
System.out.println("E-mail: "+email);
System.out.println("Address: "+address);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 33
这种方法是有效的,但我不知道如何,任何人都可以解释,它是如何工作的..
String s = sc.next();
s += sc.nextLine();
Run Code Online (Sandbox Code Playgroud)
Nom*_*mad 14
以这种方式初始化扫描仪,以便使用换行符分隔输入.
Scanner sc = new Scanner(System.in).useDelimiter("\\n");
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅JavaDoc
使用sc.next()获取String中的整行
Ant*_*ney 12
我会Scanner#nextLine反对next你的address属性使用.
此方法返回当前行的其余部分,不包括末尾的任何行分隔符.
由于这将返回整行,由行分隔符分隔,它将允许用户输入任何地址而不受任何约束.
不是直接使用System.inand System.out,而是使用Console该类 - 它允许您在一次调用中显示提示并阅读整行输入(从而解决您的问题):
String address = System.console().readLine("Enter your Address: ");
Run Code Online (Sandbox Code Playgroud)
小智 5
String s="Hi";
String s1="";
//For Reading Line by hasNext() of scanner
while(scan.hasNext()){
s1 = scan.nextLine();
}
System.out.println(s+s1);
/*This Worked Fine for me for reading Entire Line using Scanner*/
Run Code Online (Sandbox Code Playgroud)
小智 5
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = scan.next();
s += scan.nextLine();
System.out.println("String: " + s);
}
}
Run Code Online (Sandbox Code Playgroud)