阅读nextLine的更好方法

时间:2017-02-09 04:13:34

标签: java

通过HackerRank教程,我想知道 - 有没有更好的方法来删除读取双重后出现的换行符?只需重复nextLine()

,感觉非常手动和“hacky”
import java.util.Scanner;

public class Solution {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int i = scan.nextInt();
    double d = scan.nextDouble();
    String b = scan.nextLine();
    String s = scan.nextLine();
}

}

注意:代码按原样运行,只是询问是否有一种不太常见的方法来解决这个问题

1 个答案:

答案 0 :(得分:1)

一次在线上操作,然后您无需担心nextDouble()(或nextInt())来电留下尾随换行符。像,

Scanner scan = new Scanner(System.in);
int i = Integer.parseInt(scan.nextLine());
double d = Double.parseDouble(scan.nextLine());
String s = scan.nextLine();

如果,您希望允许intdouble位于同一行,然后您可以

Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d = Double.parseDouble(scan.nextLine());
String s = scan.nextLine();

但是在不知道您的输入格式的情况下,这可能会有所帮助。我会更喜欢手头问题最可读的版本(解析输入)。