Tag: java.util.scanner

如何在while循环中使用.nextInt()和hasNextInt()

所以我希望我的程序读取一个输入,它在一行中有一些整数,例如: 1 1 2 然后它应该分别读取每个整数并以新行打印。 程序必须读取的整数数量不是事先给出的,所以我要做的是使用while循环,在没有更多的整数读取之后结束。 这是我写的代码: while (scan.hasNextInt()) { int x = scan.nextInt(); System.out.println(x); } 但它没有正常工作,因为循环永远不会结束,它只是希望用户输入更多的整数。 我在这里想念的是什么?

关闭扫描仪而不关闭System.in

我正在尝试将我的应用程序中一个经常使用的大部分内容重新分解为单独的方法,以使其更易于维护。 其中一些方法要求用户输入并进行输入validation,所以我使用了扫描仪和System.in但是当我关闭扫描仪时我也关闭了System.in 所以我的问题是,我是否可以通过使用CloseShieldInputStream屏蔽它来阻止System.in关闭,还是我应该开始将Scanner传递给方法?

Java:使用Scanner in.hasNextInt()的无限循环

我使用以下代码: while (invalidInput) { // ask the user to specify a number to update the times by System.out.print(“Specify an integer between 0 and 5: “); if (in.hasNextInt()) { // get the update value updateValue = in.nextInt(); // check to see if it was within range if (updateValue >= 0 && updateValue <= 5) { invalidInput […]

如何将扫描仪输入放入数组中…例如几个数字

Scanner scan = new Scanner(System.in); double numbers = scan.nextDouble(); double[] avg =..????

Java从单行读取多个int

我正在研究一个程序,我希望允许用户在提示时输入多个整数。 我曾尝试使用扫描仪,但我发现它只存储用户输入的第一个整数。 例如: 输入多个整数:1 3 5 扫描仪只能获得第一个整数1.是否可以从一行获得所有3个不同的整数并且以后能够使用它们? 这些整数是我需要根据用户输入操作的链表中数据的位置。 我无法发布我的源代码,但我想知道这是否可行。

使用扫描仪获取用户输入

我试图让扫描仪在循环中输入。 一旦用户想要完成,他就可以退出这个循环。 我尝试了很多不同的方法,但总有一些问题。 这是代码: private void inputEntries() { Scanner sc = new Scanner(System.in); System.out.println(“Continue?[Y/N]”); while (sc.hasNext() && (sc.nextLine().equalsIgnoreCase(“y”))) {//change here System.out.println(“Enter first name”); String name = sc.nextLine(); System.out.println(“Enter surname”); String surname = sc.nextLine(); System.out.println(“Enter number”); int number = sc.nextInt(); Student student = new Student(name, surname, number); students.add(student); try { addToFile(student); } catch (Exception ex) { […]

线程“main”java.util.NoSuchElementException中的exception

每当我运行它时, chooseCave()函数与chooseCave()正常工作。 当我选择洞穴时,消息会以2秒的间隔弹出,然后一旦超过该部分,它就会给我错误: Exception in thread “main” java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Unknown Source) at Dragon.main(Dragon.java:81) 我尝试过hasNextLine()和hasNextInt() ,当我在main方法中使用while hasNextLine()时,我得到了更多的错误。 当我在chooseCave()方法中使用while hasNextInt()时,它不接受我的输入。 当我在chooseCave()方法中使用if hasNextInt()时,它不接受我对playAgain字符串的输入,并直接进入另一个游戏,但是然后hasNextInt()布尔返回false并且它发送“哪个洞穴… 。“ 无限地。 我已经完成了错误报告以及类似问题的Java-docs和Stack Overflow。 请帮忙。 import java.util.Scanner; public class Dragon { public static void displayIntro() { System.out.println(“You are in a land full of dragons. In front of you, “); System.out.println(“You see two […]

将.txt文件读入2D数组

这里有一些主题,但这个问题略有不同,使其与众不同。 我只专注于一个更大问题的一半。 我相信很多人都知道这个神奇的方块问题。 提示: 假设每行上都有行和数字的文件,如所示的正方形。 编写一个程序,将信息读入intS的二维数组。 程序应确定矩阵是否是魔方。 工作方案: public static int[][] create2DIntMatrixFromFile(String filename) throws Exception { int[][] matrix = {{1}, {2}}; File inFile = new File(filename); Scanner in = new Scanner(inFile); int intLength = 0; String[] length = in.nextLine().trim().split(“\\s+”); for (int i = 0; i < length.length; i++) { intLength++; } in.close(); matrix = new […]

Java – 关闭扫描程序和资源泄漏

我正在学习Java并且正在开展一些有趣的项目。 我遇到的一个问题是,当我使用Scanner对象时,Eclipse警告我: 资源泄漏:’扫描’永远不会关闭。 所以,我添加了一个scan.close(); 在我的代码的末尾,并负责警告。 问题来自于因为我在同一个包中也有其他类也使用了扫描程序对象,并且Eclipse告诉我分别关闭这些类中的扫描程序。 但是,当我这样做时,它似乎关闭所有扫描仪对象,并在运行时出现错误。 以下是导致错误的原因示例: import java.util.Scanner; public class test2 { public static void main(String [] args) { Scanner scan = new Scanner(System.in); int test = 0; do { //Do stuff test = scan.nextInt(); System.out.println(test); scanTest scanTest = new scanTest(); scanTest.test(); } while (test != 0); scan.close(); } } import java.util.Scanner; public […]

阅读java中的下一个单词

我有一个文本文件,其中包含以下内容: ac und accipio annehmen ad zu adeo hinzugehen … 我读了文本文件并遍历这些行: Scanner sc = new Scanner(new File(“translate.txt”)); while(sc.hasNext()){ String line = sc.nextLine(); } 每行有两个单词。 java中是否有任何方法可以获取下一个单词,还是必须拆分行字符串来获取单词?