我正在帮助一个有java问题的朋友.但是,我们遇到了障碍.我们使用Java.Util.Scanner.nextInt()从用户那里获取一个数字,不断询问用户是否提供了其他内容.唯一的问题是,我们无法弄清楚如何做错误的handeling.
我们尝试过的:
do {
int reloop = 0;
try {
number = nextInt();
} catch (Exception e) {
System.out.println ("Please enter a number!");
reloop ++;
}
} while(reloop != 0);
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,如果您输入的不是数字,这将无限循环.
有帮助吗?
试图拖尾/解析一些日志文件.条目以日期开头,然后可以跨越多行.
这有效,但是没有看到要提交的新条目.
File inputFile = new File("C:/test.txt");
InputStream is = new FileInputStream(inputFile);
InputStream bis = new BufferedInputStream(is);
//bis.skip(inputFile.length());
Scanner src = new Scanner(bis);
src.useDelimiter("\n2010-05-01 ");
while (true) {
while(src.hasNext()){
System.out.println("[ " + src.next() + " ]");
}
}
Run Code Online (Sandbox Code Playgroud)
看起来不像Scanner的next()或hasNext()检测到新的文件条目.
任何想法我还能实现,基本上,一个带有自定义分隔符的tail -f.
好的 - 使用凯利的建议我正在检查和刷新扫描仪,这是有效的.谢谢 !!
如果有人有改进建议PLZ吗!
File inputFile = new File("C:/test.txt");
InputStream is = new FileInputStream(inputFile);
InputStream bis = new BufferedInputStream(is);
//bis.skip(inputFile.length());
Scanner src = new Scanner(bis);
src.useDelimiter("\n2010-05-01 ");
while (true) {
while(src.hasNext()){
System.out.println("[ " + src.next() + " ]"); …Run Code Online (Sandbox Code Playgroud) 我有一些非常基本的代码
while (scan.hasNextLine())
{
String temp = scan.nextLine();
System.out.println(temp);
}
Run Code Online (Sandbox Code Playgroud)
其中scan是文件上的扫描仪.
然而,在一条约6k字符长的特定行上,临界值会在2470个字符之后切断.什么时候削减它没有什么特别之处; 它位于"澳大利亚"一词的中间.如果我从行中删除字符,它删除的地方会发生变化; 例如,如果我删除文件中的字符0-100,那么扫描仪将获得之前的100-2570.
之前我曾使用Scanner来制作更大的字符串.什么可能出错?
我正在尝试编写一个循环,直到我在运行应用程序的控制台中键入特定文本.就像是:
while (true) {
try {
System.out.println("Waiting for input...");
Thread.currentThread();
Thread.sleep(2000);
if (input_is_equal_to_STOP){ // if user type STOP in terminal
break;
}
} catch (InterruptedException ie) {
// If this thread was intrrupted by nother thread
}}
Run Code Online (Sandbox Code Playgroud)
而且我希望它在每次通过时写一行,所以我不希望它在一段时间内停止并等待下一个输入.我需要使用多个线程吗?
我希望用户输入一个由以下代码扫描的数字:
scanner.nextInt();
Run Code Online (Sandbox Code Playgroud)
如果用户输入字符串,则程序会抛出InputMismatchException,这很明显.我想以这样的方式捕获异常,即程序提示用户输入输入,直到用户输入整数值.
Scanner scanner = new Scanner(System.in);
while(true) {
try {
System.out.println("Please enter a number: ");
int input = scanner.nextInt();
System.out.println(input);
//statements
break;
}
catch(InputMismatchException | NumberFormatException ex ) {
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
如果输入字符串,此代码将创建无限循环.
java java.util.scanner numberformatexception inputmismatchexception
我正在尝试阅读一行,然后进入if语句.但是在第一次输入红色后它就会终止.我不知道出了什么问题,我无法弄明白
import java.util.Scanner;
public class mainen {
public static void main(String[] args) {
Formler form = new Formler();
Scanner Sscan = new Scanner(System.in);
Scanner Dscan = new Scanner(System.in);
String input;
System.out.println("Formler: Molmassa");
input = Sscan.nextLine();
if(input == "molmassa" || input == "Molmassa"){
double m;
double M;
System.out.println("Massa: "); m = Dscan.nextDouble();
System.out.println("Molmassa: "); M = Dscan.nextDouble();
System.out.println(form.getMolmassa(m, M));
}
}
}
Run Code Online (Sandbox Code Playgroud) import java.io.*;
import java.util.*;
class usingDelimiters
{
public static void main(String args[])
{
Scanner dis=new Scanner(System.in);
int a,b,c;
a=dis.nextInt();
b=dis.nextInt();
c=dis.nextInt();
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
}
}
Run Code Online (Sandbox Code Playgroud)
当我的输入是1 2 3(用空格分隔)时,这个程序工作正常但是,当我的输入是1,2,3(用逗号分隔)时,如何修改我的程序
我一直在学习JAVA,我对代码有一点疑问:
class apple {
public static void main(String[] args) {
int[] num = new int[3];
Scanner input = new Scanner(System.in);
for (int i = 0; i < num.length; i++) {
try {
num[i] = input.nextInt();
} catch (Exception e) {
System.out
.println("Invalid number..assigning default value 20");
num[i] = 20;
}
}
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我编写了一个小程序来处理异常,如果用户输入不是Int抛出异常并分配默认值.如果我把扫描器语句放在for循环中,它工作正常,但如果我把它带到它之外,它会分配抛出异常的相同值,即我输入的是char而不是int.但是如果我输入所有整数,它会在数组中分配正确的值.
Scanner input = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)
我希望你们理解我的问题.
我有一个使用多个类的程序,我希望其他类能够访问我在主类中声明的相同扫描程序,我假设它将使用某种get方法完成,但我无法找到任何资源来帮助我.
以下是我在主要课程中制作的扫描仪:
Scanner in = new Scanner(System.in);
System.out.println("Enter a filename");
String filename = in.nextLine();
File InputFile = new File (filename);
Scanner reader = new Scanner(filename);
Run Code Online (Sandbox Code Playgroud)
读者Scanner是我希望能够访问组成该程序的其他类的人,任何人都可以给我一些指导我如何做到这一点?非常感谢您的帮助!
所以我有一个文件,其中包含所有的总统 - 他们的名字,中间名首字母(如果有的话)和姓氏.
需要读入该文件,并且用户可以输入总统的名称来搜索它,并且应该显示该总统.
如果用户按名字或姓氏搜索,而不是两者都搜索,我会显示总统.
例如,外部文件包含:
George,Washington,(1789-1797)
Franklin,D.,Roosevelt,(1933-1945)
... and so on with all the presidents
Run Code Online (Sandbox Code Playgroud)
我需要用户能够键入名字,姓氏,或者姓名和名字,并获得所需的结果(日期与大部分时间无关).
试过很多不同的事情,但如果用户按名字和姓氏搜索,就不能到达显示总统的地方.
这是我到目前为止所得到的:
public class NameSearch {
public static void main(String[] args) throws IOException {
try {
// read from presidents file
Scanner presidentsFile = new Scanner(new File("Presidents.txt"));
// scanner for user input
Scanner keyboard = new Scanner(System.in);
// create array list of each line in presidents file
ArrayList<String> presidentsArrayList = new ArrayList<String>();
// prompt user to enter a string to see if it …Run Code Online (Sandbox Code Playgroud)