Tag: java.util.scanner

如何使用Java中的扫描程序读取文本文件?

这是我读取文本文件的代码。 当我运行此代码时,输​​出会一直显示“File not found。”,这是FileNotFoundException的消息。 我不确定这段代码中的问题是什么。 显然这是java的一部分。 对于整个java文件,它要求用户输入内容并使用输入作为名称创建文本文件。 之后,用户应该再次输入之前创建的文本文件的名称(假设用户输入正确),然后程序应该读取文本文件。 我已正确完成程序的其他部分,但问题是当我再次输入名称时,它只是找不到文本文件,尽管它们位于同一文件夹中。 public static ArrayList readFile() { try { // The name of the file which we will read from String filename = “a.txt”; // Prepare to read from the file, using a Scanner object File file = new File(filename); Scanner in = new Scanner(file); ArrayList shops = […]

扫描仪只读取第一个单词而不是行

在我当前的程序中,一种方法要求用户输入产品的描述作为String输入。 但是,当我稍后尝试打印出这些信息时,只显示String的第一个单词。 可能是什么原因造成的? 我的方法如下: void setDescription(Product aProduct) { Scanner input = new Scanner(System.in); System.out.print(“Describe the product: “); String productDescription = input.next(); aProduct.description = productDescription; } 因此,如果用户输入是“带有橙味的苏打汽水”,则System.out.print将仅产生“Sparkling”。 任何帮助将不胜感激!

使用Scanner.nextInt()与Scanner.nextLine()进行exception处理

此问题仅用于教育目的。 我从Java教科书中获取了以下代码,我很好奇为什么在catch块中使用了input.nextLine()。 我尝试在其位置使用input.nextInt()编写程序。 该程序将不再适当地捕获exception。 当我传递一个非整数值时,控制台显示熟悉的“线程中的exception…”错误消息。 当我完全删除该行代码时,控制台将无休止地运行catch块的System.out.println()表达式。 Scanner.nextLine()的目的是什么? 为什么这些场景中的每一个都有不同的表现? import java.util.*; public class InputMismatchExceptionDemo { public static void main(String[] args) { Scanner input = new Scanner(System.in); boolean continueInput = true; do { try{ System.out.print(“Enter an integer: “); int number = input.nextInt(); System.out.println( “The number entered is ” + number); continueInput = false; } catch (InputMismatchException ex) […]

Java Scanner连续用户输入?

对于java实践,我试图创建一个程序,从键盘读取整数,直到输入负数。 并打印忽略负数的整数的最大值和最小值。 一旦运行,有没有办法在同一个程序中连续输入? 我每次都要继续运行程序输入一个数字。 任何帮助,将不胜感激 public class CS { public static void main(String []args) { Scanner keys = new Scanner(System.in); System.out.println(“Enter a number: “); int n = keys.nextInt(); while(true) { if(n>0) { System.out.println(“Enter again: “); n = keys.nextInt(); } else { System.out.println(“Number is negative! System Shutdown!”); System.exit(1); } } } } 这是我的代码的一部分 – 它有效,但我认为有一种更简单的方法来做我想要的但不确定如何!

如何使用扫描仪使此switch语句正常工作?

我正在尝试编写一个程序,将字母表中的任何字母(大写或小写)切换为Phontic字母表。 例如,如果我输入“A”或“a”,我的程序将给我(更改为)“Alpha”。 我已经对这个和切换语句做了很多研究,但我一直陷入困境。 我意识到我不能在扫描仪中使用’char’。 但是,当我将’char’更改为’String’时,我的switch语句会混乱(特别是我的代码中的toUpperCase被强调了。我看不出我的错误。这是我到目前为止所做的事情: import java.util.Scanner; public class PhoneticTranslate { public static void main(String[] args) { char letter; String phonetic; Scanner kb = new Scanner(System.in); System.out.print(“Please enter a letter: “); letter = kb.next(); switch(Character.toUpperCase(letter)) { case ‘A’: phonetic = “Alpha”; break; case ‘B’: phonetic = “Bravo”; break; case ‘C’: phonetic = “Charlie”; break; case […]

如何使用Scanner停止从标准输入读取多行?

我正在处理一个JAVA赋值应处理多行输入。 指令读作“输入从标准输入读取”。 给出了一个示例输入示例: one 1 two 2 three 3 我不明白上面的示例输入“从stdin读取”是什么意思。 这是我写的一个测试程序,它隔离了我的困惑: import java.io.*; import java.util.Scanner; class Test { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); while(stdin.hasNextLine()) { String line = stdin.nextLine(); String[] tokens = line.split(” “); System.out.println(Integer.parseInt(tokens[1])); } } 当我在控制台中运行这个程序时,它会等待我的输入,每当我输入一行时,它就像我期望的那样回复它。 所以我想也许上面的样本输入可以通过以这种方式输入3行中的每一行来实现。 但是,似乎没有办法结束这个过程。 输入3行后,如何终止输入? 我尝试按两次输入,但这似乎只是一个由换行符组成的行,这会导致错误,因为该行不符合它所期望的2令牌格式。 这是控制台交互的样子: javac Test.java java Test one 1 […]

继续阅读数字,直到使用扫描仪到达换行符

我想从控制台读取几个数字。 我想这样做的方法是让用户输入一个由空格分隔的数字序列。 代码执行以下操作: Scanner sc = new Scanner(System.in); while (sc.hasNextInt()){ int i = sc.nextInt(); //… do stuff with i … } 问题是,如何在到达新线时停止(同时保持上面易于阅读的代码)? 在上面的参数中添加!hasNextLine()会使其立即退出循环。 一种解决方案是读取整行并解析数字,但我认为有点破坏了hasNextInt()方法的目的。

缓冲读卡器与文件读取器和扫描仪类之间的区别

谁能解释一下BufferedReader类, FileReader和Scanner之间的区别? 当我想阅读文本文件时使用哪一个?

如何为用户输入创建循环(直到用户输入有效输入)?

我的程序应该要求用户输入他们想要从帐户中提取的金额,并在提款后计算当前余额。 提款要求最低为100,最高为1000.如果用户输入错误输入,程序应重新提交,并要求用户再次输入金额。 此过程将一直重复,直到用户输入正确的金额。 选择正确的金额后,应计算并显示当前余额。 这是我尝试的方式,但我没有做出循环: package ex3; import java.util.Scanner; public class BankApp { public static void main(String[] args) { //displaying the welcome message System.out.println(“Welcome to our bank.\nYour initial balance is 1000 SEK\n”); //initializing all necessary variables double initialBalance = 1000; double userChoise = 0; double currentBalance; //asking user to enter expected amount System.out.println(“Enter your amount […]

读取文件并将名称和数字存储在两个数组中

我正在研究一个程序,它读取文件并将名称和分数存储在两个独立的数组中,但我很挣扎。 这就是我到目前为止所拥有的。 我为名称名称创建了一个数组,但我很困惑如何将名称复制到数组的每个索引中。 import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ScannerReadFileSplit { public static void main(String[] args) { File file = new File(“NamesScore.txt”); String[] names = new String[100]; int[] scores = new int[100]; int i; try { Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); String [] words = line.split(“\t”); […]