我试图从Java 6中的键盘输入文本输入.我是该语言的新手,每当我运行以下代码时,我都会收到此错误:
package test1;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
boolean quit = false;
while (!quit){
Scanner keyIn;
String c = "x";
while (c != "y" && c != "n") {
keyIn = new Scanner(System.in);
c = keyIn.next();
keyIn.close();
}
if (c == "n")
quit = true;
}
}
}
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1347)
at test1.Test.main(Test.java:11)
Run Code Online (Sandbox Code Playgroud)
我错误地使用了next()方法吗?我认为它会等待用户输入,但它看起来不是,并抛出异常说扫描仪中没有任何东西.
在Snow Leopard的Eclipse(Indigo)上运行以下Java 6代码时,出现FileNotFoundException异常:
import java.io.*;
import java.util.*;
public class readFile {
public static void main(String[] args) {
Scanner s = new Scanner(new FileReader("/Users/daniel/pr/java/readFile/myfile.txt")); // Line 9
}
}
Run Code Online (Sandbox Code Playgroud)
例外是
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type FileNotFoundException
at readFile.main(readFile.java:9)
Run Code Online (Sandbox Code Playgroud)
我当前的工作空间是/ Users / daniel / pr / java。它仅包含一个项目(readFile),文件层次结构如下所示:
- readFile
- src
- (default package)
- readFile.java
- JRE System Library [JavaSE-1.6]
- myfile.txt
Run Code Online (Sandbox Code Playgroud)
在阅读了几个非常相似的问题之后,我尝试了
我很茫然。可能是什么问题呢?(谢谢您的阅读!)
java eclipse filenotfoundexception filereader java.util.scanner
可能重复:
扫描程序与BufferedReader
是否有任何情况下使用java.util.Scanner来读取某种类型的输入?在我的小测试中,我发现它比java.util.Bufferedreader或从java.util.InputStreamReader实现自己的阅读器要慢得多.
那么为什么我想要使用扫描仪有什么理由呢?
我这里有两个代码块.一个扫描仪正确地等待用户输入,另一个扫描仪正好通过它并且调用nextInt()返回一个NoSuchElementException.这是有效的块:
public void startGame() {
out.println("Player1: 1 for dumb player, 2 for smart player, 3 for human player.");
Scanner scan = new Scanner(System.in);
p = scan.nextInt();
if (p == 1)
p1 = new DumbPlayer("ONE");
if (p == 2)
p1 = new SmartPlayer("ONE");
else
p1 = new HumanPlayer("ONE");
out.println("Player2: 1 for dumb player, 2 for smart player, 3 for human player.");
p = scan.nextInt();
if (p == 1)
p2 = new DumbPlayer("TWO");
if (p == 2)
p2 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用a Scanner和a 从输入中读取指定的文件格式Pattern,如下所示:
Pattern p = Pattern.compile("\\d+\\sx\\s\\d+");
Scanner sc = new Scanner(System.in);
String input = "";
try {
input = sc.next(p);
} catch(NoSuchElementException ne) {
System.out.println("No such token");
}
sc.close();
System.out.println(input);
Run Code Online (Sandbox Code Playgroud)
但是当我1 x 1用作输入时,它会抛出NoSuchElementException
模式\\d+x\\d+,输入1x1它可以工作,但模式中没有空格,我做错了吗?
我愿意在Java中从下面的一行读取一系列数字:
1 80,982 163,8164 170,2620
Run Code Online (Sandbox Code Playgroud)
所以最终我想要结果数组 [1, 80, 982, 163, 8164, 170, 2620]
我正在考虑使用扫描仪,但不清楚如何以一种简洁的方式实现它,我可以请一些提示吗?
谢谢阅读!
我有一个问题,我试图创建一个应用程序,计算文件中符号的所有出现...扫描方法"nextLine"停在一个空行...有没有办法让它继续前进,直到它到达真正的文件结束?
简而言之:我可以在文件中获得REAL行吗?
先感谢您!
我有一个关于数据验证和扫描仪的问题.以下代码检查userinput.不允许使用除整数之外的任何内容,并要求用户重新输入值.我的问题是代码仅在扫描程序是在while循环中声明.如果扫描仪在外面声明,程序将无限执行.为什么?谢谢.
int UserInp;
boolean dataType=false;
while(dataType==false)
{
Scanner sc=new Scanner(System.in);
try
{
System.out.print("\nEnter a number: ");
UserInp=sc.nextInt();
dataType=true;
}
catch(Exception JavaInputMismatch)
{
System.out.println("Option not available.Try again.");
}
}
Run Code Online (Sandbox Code Playgroud) Scanner in = new Scanner(System.in,"UTF-8");
System.out.println(in.next());
Run Code Online (Sandbox Code Playgroud)
如果我粘贴?,我收到?控制台的输出.有人可以解释我能做些什么来正确读取这样的逻辑符号?我正在使用NetBeans 8.0.1.
谢谢.
Java新手在这里。
我创建了一个函数来简单地返回用户通过 Scanner 给出的 int 。目标是避免用户未键入整数时出现错误,通知他们并让他们重试。
如果第一次尝试时该值是整数,则它工作正常,但如果我键入一个字符(出现错误,函数“重新启动”),则该函数将返回“默认”零。尝试了不同的事情,但我绝对不明白这里的逻辑。
这是代码:
//Initialize the Scanner earlier
public static Scanner keyBoardRead = new Scanner(System.in);
public static int intEntry()
{
int entry;
keyBoardRead = new Scanner(System.in);
if (keyBoardRead.hasNextInt() == true)
{
entry = keyBoardRead.nextInt();
System.out.println("entry variable = "+entry);
// Here the correct entry prints but doesn't seem to return
return entry;
}
else
{
System.out.println("Invalid entry.\n");
intEntry();
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
示例输出:
z
Invalid entry.
2
entry variable = 2
// Function exits and output = …Run Code Online (Sandbox Code Playgroud)