标签: java.util.scanner

在使用next()或nextFoo()之后,Scanner正在跳过nextLine()?

我正在使用这些Scanner方法nextInt()nextLine()阅读输入.

它看起来像这样:

System.out.println("Enter numerical value");    
int option;
option = input.nextInt(); // Read numerical value from input
System.out.println("Enter 1st string"); 
String string1 = input.nextLine(); // Read 1st string (this is skipped)
System.out.println("Enter 2nd string");
String string2 = input.nextLine(); // Read 2nd string (this appears right after reading numerical value)
Run Code Online (Sandbox Code Playgroud)

问题是输入数值后,第一个input.nextLine()被跳过而第二个input.nextLine()被执行,所以我的输出如下所示:

Enter numerical value
3   // This is my input
Enter 1st string    // The program is supposed to stop here and …
Run Code Online (Sandbox Code Playgroud)

java io java.util.scanner

627
推荐指数
17
解决办法
45万
查看次数

扫描仪与BufferedReader

据我所知,从Java文件中读取基于字符的数据的两种最常用的方法是使用ScannerBufferedReader.我也知道BufferedReader通过使用缓冲区来有效地读取文件以避免物理磁盘操作.我的问题是:

  • 是否Scanner执行以及BufferedReader
  • 你为什么选择Scanner,BufferedReader反之亦然?

java file-io bufferedreader java.util.scanner

267
推荐指数
8
解决办法
25万
查看次数

如何使用Java中的Scanner类从控制台读取输入?

我如何使用Scanner该类从控制台读取输入?像这样的东西:

System.out.println("Enter your username: ");
Scanner = input(); // Or something like this, I don't know the code
Run Code Online (Sandbox Code Playgroud)

基本上,我想要的只是让扫描程序读取用户名的输入,并将输入分配给String变量.

java java.util.scanner

214
推荐指数
7
解决办法
153万
查看次数

Scanner vs. StringTokenizer vs. String.Split

我刚刚学习了Java的Scanner类,现在我想知道它如何与StringTokenizer和String.Split进行比较/竞争.我知道StringTokenizer和String.Split只适用于字符串,那么为什么我要将扫描器用于字符串呢?Scanner只是打算一站式购物吗?

java split tokenize java.util.scanner

152
推荐指数
5
解决办法
14万
查看次数

从扫描仪获取char输入

我试图找到一种char从键盘输入的方法.

我试过用:

Scanner reader = new Scanner(System.in);
char c = reader.nextChar();
Run Code Online (Sandbox Code Playgroud)

此方法不存在.

我试着把它c作为一个String.然而,它并不总是适用于所有情况,因为我从我的方法调用的另一种方法需要一个char输入.因此,我必须找到一种方法来明确地将char作为输入.

有帮助吗?

java input char java.util.scanner

112
推荐指数
5
解决办法
89万
查看次数

使用scanner.nextLine()

尝试使用java.util.Scanner中的nextLine()方法时遇到了麻烦.

这是我尝试过的:

import java.util.Scanner;

class TestRevised {
    public void menu() {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter a sentence:\t");
        String sentence = scanner.nextLine();

        System.out.print("Enter an index:\t");
        int index = scanner.nextInt();

        System.out.println("\nYour sentence:\t" + sentence);
        System.out.println("Your index:\t" + index);
    }
}
Run Code Online (Sandbox Code Playgroud)

示例#1:此示例按预期工作.String sentence = scanner.nextLine();在继续之前,该行等待输入输入System.out.print("Enter an index:\t");.

这会产生输出:

Enter a sentence:   Hello.
Enter an index: 0

Your sentence:  Hello.
Your index: 0
Run Code Online (Sandbox Code Playgroud)
// Example #2
import java.util.Scanner;

class Test {
    public void menu() {
        Scanner scanner …
Run Code Online (Sandbox Code Playgroud)

java java.util.scanner

92
推荐指数
4
解决办法
67万
查看次数

如何逐行读取标准输入?

什么是标准输入逐行读取的Scala配方?类似于等效的java代码:

import java.util.Scanner; 

public class ScannerTest {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            System.out.println(sc.nextLine());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java io scala java.util.scanner

90
推荐指数
5
解决办法
7万
查看次数

Scanner类的next()和nextLine()方法有什么区别?

next()和之间的主要区别是nextLine()什么?
我的主要目标是使用Scanner可以"连接" 到任何源(例如文件)的所有文本来阅读.

我应该选择哪一个?为什么?

java java.util.scanner

74
推荐指数
5
解决办法
23万
查看次数

为什么hasNext()为False,但hasNextLine()为True?

对于一个scanner对象,该hasNextLine()方法返回false时该hasNext()方法返回true是怎么回事?

注意:根据输入文件,该hasNext()方法将按预期返回结果; 在hasNextLine()似乎没有被返回正确的结果.

这是我正在运行的代码,它创建了以下结果:

public void ScannerTest(Reader fileReaderObject){
    Scanner scannerObj = new Scanner(fileReaderObject);

    for(int i = 1; scannerObj.hasNext(); i++){
        System.out.println(i + ": " + scannerObj.next());
        System.out.println("Has next line: " + scannerObj.hasNextLine());
        System.out.println("Has next: " + scannerObj.hasNext());
    }
    System.out.println();

    scannerObj.close();
}
Run Code Online (Sandbox Code Playgroud)

输入文件

以下是我传递给此扫描器的文件的实际内容:

a   3   9
b   3   6
c   3   3
d   2   8
e   2   5
f   2   2
g   1   7
h   1   4
i   1   1
Run Code Online (Sandbox Code Playgroud)

结果 …

java java.util.scanner

61
推荐指数
4
解决办法
2万
查看次数

在nextXXX之后使用nextLine时扫描程序问题

当我尝试使用Scanner以下方法获取用户输入时,我遇到了一个问题:

import java.util.Scanner;

public class Main
{
    public static Scanner input = new Scanner(System.in);
    public static void main(String[] args)
    {
        System.out.print("Insert a number: ");
        int number = input.nextInt();
        System.out.print("Text1: ");
        String text1 = input.nextLine();
        System.out.print("Text2: ");
        String text2 = input.nextLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

Insert a number: 55
Text1: Text2: Hi there!
Run Code Online (Sandbox Code Playgroud)

如您所见,该程序已跳过String text1 = input.nextLine();.这里有什么问题?以及如何解决这个问题?

java java.util.scanner

59
推荐指数
0
解决办法
5万
查看次数

标签 统计

java ×10

java.util.scanner ×10

io ×2

bufferedreader ×1

char ×1

file-io ×1

input ×1

scala ×1

split ×1

tokenize ×1