标签: java.util.scanner

Java Scanner类读取字符串

我得到以下代码:

        int nnames;
    String names[];

    System.out.print("How many names are you going to save: ");
    Scanner in = new Scanner(System.in);
    nnames = in.nextInt();
    names = new String[nnames];

    for (int i = 0; i < names.length; i++){
        System.out.print("Type a name: ");
        names[i] = in.next();
    }

    System.out.println(names[0]);
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,扫描程序将只选取名字而不是姓氏.在尝试输入名称时有时会跳过一行,它会显示为我将名称留空并跳到下一个名称.我不知道是什么造成了这种情况.

我希望有一个人可以帮助我!

编辑:我试过in.nextLine(); 它修复了完整的名称,但它仍然保持一行,这是输出的一个例子:

How many names are you going to save:  3
Type a name: Type a name: John Doe
Type a name: John Lennon
Run Code Online (Sandbox Code Playgroud)

java string class duplicates java.util.scanner

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

你可以将扫描仪跳到文件中的位置或向后扫描吗?

我有一个非常大的文本文件,我需要从最近的某个地方收集数据.也许Scanner并不是最好的方法,但是在获取我感兴趣的文件部分之前从顶部开始并抓住6000行是非常浪费的.有没有办法告诉Scanner跳转到比如文件的7/8或从底部开始向上扫描并逐行抓取?

谢谢

java java.util.scanner

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

扫描仪不会停止获取输入

好吧,非常菜鸟的问题。我正在制作一个CLI应用程序,使用户可以设计调查。他们首先输入问题,然后输入选择的数量和选择。我正在使用扫描仪来获取输入,由于某种原因,它允许用户输入大多数内容,但不能输入问题的内容。下面的代码段。

String title = "";
Question[] questions;
int noOfQuestions = 0;
int[] noOfChoices;
Scanner entry = new Scanner(System.in);
System.out.println("Please enter the title of the survey: ");
title = entry.nextLine();
System.out.println("Please enter the number of questions: ");
noOfQuestions = entry.nextInt();
noOfChoices = new int[noOfQuestions];
questions = new Question[noOfQuestions];
for (int i = 0; i < noOfQuestions; i++) {
    questions[i] = new Question();
}
for (int i = 0; i < noOfQuestions; i++) {

    System.out.println("Please enter the text of question " + …
Run Code Online (Sandbox Code Playgroud)

java input java.util.scanner

4
推荐指数
1
解决办法
3469
查看次数

Java - 解析文本文件

我有这种格式的输入文本文件:

<target1> : <dep1> <dep2> ...
<target2> : <dep1> <dep2> ...
...
Run Code Online (Sandbox Code Playgroud)

以及一个采用两个参数的方法

function(target, dep);
Run Code Online (Sandbox Code Playgroud)

我需要让这个解析来调用我的方法与每个目标和dep,例如:

function(target1, dep1);
function(target1, dep2);
function(target1, ...);
function(target2, dep1);
function(target2, dep2);
function(target2, ...);
Run Code Online (Sandbox Code Playgroud)

调用function(target,dep)文本文件的每一行最有效的方法是什么?我试过用扫描仪和string.split搞错,但没有成功.我很难过.

谢谢.

java file-io parsing java.util.scanner

4
推荐指数
1
解决办法
6万
查看次数

来自URL文本文件的Java单行扫描程序

在java中,我需要从"http://www.mysite.com/text.txt"到扫描器获取什么代码,该扫描器以尽可能少的行解析站点中包含的结果文本.

java url java.util.scanner

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

Scanner.hasNext()返回false

我有一个包含许多文件的目录 - 每个文件都有超过800行.Hovewer,当我尝试使用Scanner阅读它时,它似乎是空的.

File f1 = new File("data/cityDistances/a.txt"),
     f2 = new File("data/cityDistances/b.txt");
System.out.println(f1.exists() && f2.exists()); //return true
System.out.println(f1.getTotalSpace() > 0 && f2.getTotalSpace() > 0); //return true
Scanner in = new Scanner(f1);
System.out.println(in.hasNext()); // return false;
System.out.println(in.hasNextLine()); //return false;
Run Code Online (Sandbox Code Playgroud)

为什么它会像那样?


我已成功使用它BufferedReader.尽管如此,它似乎更奇怪的是BufferedReader工作和Scanner没有.

java file java.util.scanner

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

D有像Java的扫描仪吗?

像Java的扫描仪那样在D中是否有流解析器?在哪里你可以nextInt()去取一个intnextLong()一个long等等.

d java.util.scanner

4
推荐指数
1
解决办法
106
查看次数

Scanner nextLine()偶尔会跳过输入

这是我的代码

Scanner keyboard = new Scanner(System.in);

System.out.print("Last name: ");
lastName = keyboard.nextLine(); 

System.out.print("First name: ");
firstName = keyboard.nextLine();

System.out.print("Email address: ");
emailAddress = keyboard.nextLine();

System.out.print("Username: ");
username = keyboard.nextLine();
Run Code Online (Sandbox Code Playgroud)

它输出这个

Last name: First name: 
Run Code Online (Sandbox Code Playgroud)

基本上它跳过让我进入lastName并直接进入提示firstName.

但是,如果我使用keyboard.next()而不是keyboard.nextLine(),它工作正常.有什么想法吗?

java java.util.scanner

4
推荐指数
1
解决办法
5817
查看次数

递归地反转扫描仪输入的数字_order_

我在尝试解决递归任务时遇到了麻烦,但没有成功.

分配的目标是调用函数

reverseNumbers(new Scanner("11 23 31 49 56 611"))
Run Code Online (Sandbox Code Playgroud)

并获得输出

"611 56 49 31 23 11"
Run Code Online (Sandbox Code Playgroud)

虽然不允许使用数组,列表,字符串和方法应该只声明一个变量.

我写的代码不起作用.我收到了一个StackOverflow错误,我明白为什么会这样.这是因为参数scan不会改变,并且必须使递归起作用.但是,我不知道如何使用Scanner实用程序中提供的工具更改输入参数.

public static String reverseNumbers(Scanner scan){
   if (!scan.hasNext()) {
      return "";
   }
   else {
      return reverseNumbers(scan)  + " " + scan.nextInt();
   }
}
Run Code Online (Sandbox Code Playgroud)

java recursion java.util.scanner

4
推荐指数
1
解决办法
379
查看次数

为什么此代码会获得Java NoSuchElement异常?

我已经跟踪了这段代码,无法弄清楚如何修复它.运行代码时,为什么不提示用户输入而不是Java确定没有输入?错误跟踪如下.

import java.util.*;
public class SortAsInserted {

    public static void main(String[] args) {
        int array_size = GetArraySize();
        //System.out.println(array_size);
        String[] myArray = new String[array_size];
        for (int i = 0; i < array_size; i++){
            String next_string = GetNextString();
            System.out.println(next_string);
        }
    }



    //public static String[] SortInsert(String nextString){
        //}

    public static int GetArraySize(){
        Scanner input = new Scanner(System.in);
        System.out.print("How many items are you entering?: ");
        int items_in_array = input.nextInt();
        input.close();
        return items_in_array;


    }

    public static void PrintArray(String[] x) {
        for (int i = 0; …
Run Code Online (Sandbox Code Playgroud)

java java.util.scanner nosuchelementexception

3
推荐指数
1
解决办法
118
查看次数