我必须得到一个字符串输入和一个整数输入,但是输入顺序应该是整数首先出现然后应该要求用户输入字符串
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) 这可能是最简单的事情之一,但我没有看到我做错了什么.
我的输入包括一个带有数字的第一行(要读取的行数),带有数据的一串行和仅带有\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的扫描仪来读取用户输入.如果我只使用一次nextLine,它可以正常工作.使用两个nextLine,第一个不等待用户输入字符串(第二个).
输出:
X:Y :(等待输入)
我的代码
System.out.print("X: ");
x = scanner.nextLine();
System.out.print("Y: ");
y = scanner.nextLine();
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会这样?谢谢
这是该计划
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()仍然可以读取我输入的下一个整数,但实际上它是一个无限循环.
我仍然不知道它背后的逻辑,希望有人能帮助我.
我写的代码只是输入一个字符串,而不是整个句子,我想把整个句子作为输入:
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中的一个练习的帮助,我可能会坚持这个错误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) 先生,我正在尝试打印阵列的第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个元素值.你能帮我找到我的错误吗?
我正在编写一个程序,我需要从键盘输入.我需要输入一个数字,但我不确定它是否是一个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()我不知道它会是哪一个.
我在尝试从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().
有人知道如何解决这个问题吗?
当我使用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)