相关疑难解决方法(0)

不能一起使用Scanner.nextInt()和Scanner.nextLine()

我必须得到一个字符串输入和一个整数输入,但是输入顺序应该是整数首先出现然后应该要求用户输入字符串

Scanner in = new Scanner(System.in);


    input = in.nextLine();
    k = in.nextInt();

    in.close();
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但如果我首先采用整数输入,如下面的代码

Scanner in = new Scanner(System.in);

    k = in.nextInt();
    input = in.nextLine();


    in.close();
Run Code Online (Sandbox Code Playgroud)

然后它抛出java.lang.ArrayIndexOutOfBoundsException.

这是我的源文件的完整代码:

import java.util.Scanner;
Run Code Online (Sandbox Code Playgroud)

public class StringSwap {

public static void main(String args[]) {
    String input;
    int k;

    Scanner in = new Scanner(System.in);

    k = in.nextInt();
    input = in.nextLine();


    in.close();

    int noOfCh = noOfSwapCharacters(input);
    originalString(input, noOfCh, k);

}

public static int noOfSwapCharacters(String s) {

    char cS[] = s.toCharArray();
    int i = 0, postCounter = …
Run Code Online (Sandbox Code Playgroud)

java java.util.scanner

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

为什么nextLine()返回一个空字符串?

这可能是最简单的事情之一,但我没有看到我做错了什么.

我的输入包括一个带有数字的第一行(要读取的行数),带有数据的一串行和仅带有\n的最后一行.我应该处理这个输入,在最后一行之后,做一些工作.

我有这个输入:

5
test1
test2
test3
test4
test5
      /*this is a \n*/
Run Code Online (Sandbox Code Playgroud)

为了阅读输入,我有这个代码.

int numberRegisters;
String line;

Scanner readInput = new Scanner(System.in);

numberRegisters = readInput.nextInt();

while (!(line = readInput.nextLine()).isEmpty()) {
    System.out.println(line + "<");
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么我不打印任何东西?程序读取第一行,然后什么都不做.

java

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

Java Scanner不等待用户输入

我正在使用Java的扫描仪来读取用户输入.如果我只使用一次nextLine,它可以正常工作.使用两个nextLine,第一个不等待用户输入字符串(第二个).

输出:

X:Y :(等待输入)

我的代码

System.out.print("X: ");
x = scanner.nextLine();
System.out.print("Y: ");
y = scanner.nextLine();
Run Code Online (Sandbox Code Playgroud)

任何想法为什么会这样?谢谢

java io java.util.scanner

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

input.nextInt()如何正常工作?

这是该计划

public class bInputMismathcExceptionDemo {
public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    boolean continueInput = true;
    do {
        try {
            System.out.println("Enter an integer:");
            int num = input.nextInt();

            System.out.println("the number is " + num);
            continueInput = false;
        }
        catch (InputMismatchException ex) {
            System.out.println("Try again. (Incorrect input: an integer is required)");
        } 
        input.nextLine();
    }   
    while (continueInput);

}
}
Run Code Online (Sandbox Code Playgroud)

我知道nextInt()只读整数而不是"\n",但为什么我们需要input.nextLine()读取"\n"?有必要吗??因为我认为即使没有input.nextLine(),在它返回之后try {},input.nextInt()仍然可以读取我输入的下一个整数,但实际上它是一个无限循环.

我仍然不知道它背后的逻辑,希望有人能帮助我.

java

10
推荐指数
2
解决办法
5万
查看次数

如何用Java输入一个句子

我写的代码只是输入一个字符串,而不是整个句子,我想把整个句子作为输入:

import java.util.Scanner;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i; 
        i= scan.nextInt();
        double d;
        d=scan.nextDouble();
        String s;
        s=scan.next();
        System.out.println("String: " + s);
        System.out.println("Double: " + d);
        System.out.println("Int: " + i);
    }
}
Run Code Online (Sandbox Code Playgroud)

测试用例是"欢迎使用Java",它只是在输出中显示"欢迎".其他一切都很好.请帮忙.

java

10
推荐指数
2
解决办法
5960
查看次数

线程"main"java.util.InputMismatchException中的异常

我需要java中的一个练习的帮助,我可能会坚持这个错误2小时.任何帮助都会很棒.

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:909)
    at java.util.Scanner.next(Scanner.java:1530)
    at java.util.Scanner.nextInt(Scanner.java:2160)
    at java.util.Scanner.nextInt(Scanner.java:2119)
    at prodavnica.Prodavnica.main(Prodavnica.java:60)
Java Result: 1


package prodavnica;

public class Proizvod {

    private String ime_proizvod;
    private static int cena;

    public Proizvod(String ime_proizvod, int cena) {
        this.ime_proizvod = ime_proizvod;
        this.cena=cena;
    }

    public String getIme_proizvod() {
        return ime_proizvod;
    }

    public void setIme_proizvod(String ime_proizvod) {
        this.ime_proizvod = ime_proizvod;
    }

    public static int getCena() {
        return cena;
    }

    public static void setCena(int cena) {
        Proizvod.cena = cena;
    }

    public void pecatiPodatoci(){ …
Run Code Online (Sandbox Code Playgroud)

java program-entry-point inputmismatchexception

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

无法打印第0个数组元素

先生,我正在尝试打印阵列的第0个元素,但我不能.这是我的代码

import java.util.Scanner;
public class prog3
{
    public static void main (String[] args){
        Scanner input = new Scanner(System.in);
        int size = input.nextInt();
        String arr[] = new String[size];

        for (int i=0; i<size; i++){
            arr[i]= input.nextLine();
        }

        System.out.print(arr[0]);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我试图打印arr[0]其返回空白但当我打印arr[1]它时返回第0个元素值.你能帮我找到我的错误吗?

java arrays

5
推荐指数
2
解决办法
140
查看次数

如何读取可能是int或double的输入?

我正在编写一个程序,我需要从键盘输入.我需要输入一个数字,但我不确定它是否是一个int或一个double.这是我的代码(针对该特定部分):

import java.io.*;
import java.util.*;

//...
Scanner input  = new Scanner(System.in); 
int choice = input.nextInt();
Run Code Online (Sandbox Code Playgroud)

我知道我可以得到一个String或做,parseInt()或者parseDouble()我不知道它会是哪一个.

java double parsing integer keyboard-input

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

需要从文件中读取String和Double

我在尝试从txt文件中读取String和Double时遇到了一些麻烦.这是我的txt文件:

Mike 300.50
John 260
Lisa 425.33
Run Code Online (Sandbox Code Playgroud)

以下是我用来阅读它们的代码:

reader = new Scanner();
while(reader.hasNext()){
    name= reader.next();
    salary = reader.nextDouble();
    System.out.println(name + " " + salary + "\r\n");
}
Run Code Online (Sandbox Code Playgroud)

每当我运行此代码时,Exception in thread "main" java.util.InputMismatchException似乎告诉我问题所在nextDouble().

有人知道如何解决这个问题吗?

java string double java.util.scanner

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

字符串扫描程序在Java中不起作用

当我使用scan.nextLine()时,输入框无法正常工作.如果是scan.next(),那就完美了.但为什么呢?我不应该使用scan.nextLine()作为字符串吗?

import java.util.Scanner;
public class Test{
public static void main(String[] args){

    Scanner scan = new Scanner(System.in);
    int x = scan.nextInt();
    System.out.println("p");
    String p = scan.nextLine();
    System.out.println("q");
    String q = scan.next();
    System.out.println("m");
    String m = scan.next();
    }  
}
Run Code Online (Sandbox Code Playgroud)

java string next java.util.scanner drjava

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