Tag: java.util.scanner

Java:如何计算没有。 文件中的行?

可能重复: Java中文件中的行数 我需要计算通过命令行参数传递给java的txt文件的行数。 我知道如何从文件中读取,但我在完成剩下的工作时遇到了麻烦。 任何帮助,将不胜感激。 这是我到目前为止: import java.util.*; import java.io.*; public class LineCounter { public static void main (String [] args) throws IOException{ Scanner file = new Scanner(new File(“myFlile.txt”)); int count = 0; while(file.hasNext()){ boolean s = file.hasNext(); int count = file.nextInt(); } System.out.println(count); } }

调用Scanner.close()会抛出nosuchelementexception

我有一个简单的方法,它将命令打印到屏幕,扫描用户的输入,并将其作为字符串返回。 如果用户的输入无效,它会通知用户并再次询问。 这个方法工作得很好,但我的讲师提到我们应该总是关闭资源,所以我回去并在close方法中添加,现在每次调用方法时都会收到NoSuchElementException,无论用户输入如何。 这是代码…… private String getUserString(String userCommand) { System.out.println(userCommand); Scanner scan = new Scanner(System.in); String userinput = scan.nextLine().trim(); if (userinput.isEmpty()){ System.out.println(“Invalid choice”); return getUserString(userCommand); } else { return userinput; } } exception总是指向userinput作为scan.nextLine()启动的行.trim()注意*我在每个return语句之前的每一行都添加了scan.close(),但是我没有在上面包含它。

在Mac OSX上获取扫描程序错误

我最近购买了Scite for Mac,但是在使用Scanner类时遇到了问题。 编译很好,但是当我运行它时我会收到错误。 这是代码。 在Windows上正常工作,但无法在Mac OSx上运行。 `import java.util.Scanner; public class Power2Input{ public static void main(String[]args){ Scanner input=new Scanner(System.in); System.out.println(“Enter TWO integer numbers!”); int a=0; System.out.println(“First number: “); a=input.nextInt(); int b=0; System.out.println(“Second number: “); b=input.nextInt(); double c=Math.pow(a, b); System.out.println((int)c); } }` 这是错误消息。 `Exception in thread “main” java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:907) at java.util.Scanner.next(Scanner.java:1530) at java.util.Scanner.nextInt(Scanner.java:2160) at java.util.Scanner.nextInt(Scanner.java:2119) […]

如何在不关闭扫描的情况下制作ONE静态扫描器全局变量并在方法和主要方法中使用它?

我想创建一个静态扫描程序,但我想在它周围放置try catch块,以便它可以自动关闭以避免资源泄漏和/或此exception: Exception in thread “main” java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Scanner.java:1585) at softwareEngineer.UserApp1.main(UserApp1.java:82) 基本上我只想创建一个静态扫描程序声明并在整个主程序中使用它并包含静态方法,此时我的代码将需要为每个方法创建单独的扫描程序,并且你强制“scan.close()”。 由于多个扫描程序已打开且未关闭程序,下面的代码将收到exception处理错误。 我现在更新了代码,我得到空指针exception import java.util.Scanner; public class UserApp1 { static User currentCustomer = null; //single object static Scanner scan; //——————————————————- // Create a list, then repeatedly print the menu and do what the // user asks until they quit //——————————————————- public […]

使用扫描仪时无限循环?

boolean z = false; do { try { a = sc.nextInt(); z = true; } catch(Exception e) { } } while(!z); 尝试这个。 如果在第一次正确执行时尝试整数。 但是,如果输入错误的文本类型,即使您输入int next并跳过将布尔值赋值为true,它也会变为无限循环。 为什么是这样?

BufferedReader比Scanner有什么好处

这是关于图中深度优先搜索的代码。 谁知道为什么在这段代码中使用了bufferedReader类? 为什么不使用nextIntfunction呢? 它的特权是什么? 是为了加快处理速度? 谢谢 :) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Graph { int g[][]; int v,e; int visited[]; void createGraph()throws IOException { int a,b; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print(“\n Enter Number Of Vertices = “); v=Integer.parseInt(br.readLine()); System.out.print(“\n Enter Number Of Edges = “); e=Integer.parseInt(br.readLine()); g=new int[v+1][v+1]; for(int i=1;i<=e;i++) { […]

如何让ArrayList 和Scanner玩得很好?

import java.util.*; public class CyclicShiftApp{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); ArrayList list = new ArrayList(); while(scan.hasNextInt()){ list.add(scan.nextInt()); } Integer[] nums = new Integer[list.size()]; nums = list.toArray(nums); for(int i = 0;i < nums.length; i++){ System.out.println(nums[i]); } } 由于糟糕的调试,我发现while(scan.hasNextInt())实际上并没有添加任何内容。 可能出了什么问题? 我的谷歌软弱还是缺乏让我失望的技术诀窍? 我对编程很陌生,所以不熟悉Lists所以认为这将是一个不错的第一步,但有些东西并没有加起来。 它也编译好,所以它不是语法(再也没有)。 也许铸造问题?

需要帮助确定扫描仪的行结束

我的程序中有一个扫描程序,它读取部分文件并将其格式化为HTML。 当我正在阅读我的文件时,我需要知道如何让扫描仪知道它在一行的末尾并开始写入下一行。 这是我的代码的相关部分,如果我遗漏了任何内容,请告诉我: //scanner object to read the input file Scanner sc = new Scanner(file); //filewriter object for writing to the output file FileWriter fWrite = new FileWriter(outFile); //Reads in the input file 1 word at a time and decides how to ////add it to the output file while (sc.hasNext() == true) { String tempString […]

如何让Java扫描程序确认空白输入?

我无法让我的程序响应空输入。 例如,假设我想提示用户输入类型为BigDecimal的货币值以及货币类型。 这是有问题的程序的样子。 public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print(“Enter the amount of money ” + “and specify currency (USD or CNY): “); // initialize variable moneyInput BigDecimal moneyInput; // check if moneyInput is numeric try { moneyInput = input.nextBigDecimal(); } catch (InputMismatchException e){ System.err.println(“InputMismatchException: non-numeric value”); return; } // […]

Java Scanner究竟是如何解析的?

我正在使用Windows 7机器,其“控制面板\时钟,语言和地区”是“丹麦” 根据Scanner的文档: 扫描程序的初始语言环境是Locale.getDefault()方法返回的值; 但是当我运行代码时: System.out.println(Locale.getDefault()); Scanner sc = new Scanner(“1.0”); sc.nextDouble(); 它输出“en_US”,然后在sc.nextDouble()处抛出java.util.InputMismatchException。 扫描仪初始化为“1,0”时有效 但是,如果我明确设置了Locale: Locale.setDefault(Locale.US); System.out.println(Locale.getDefault()); Scanner sc = new Scanner(“1.0”); sc.nextDouble(); 它输出“en_US”然后解析双精度就好了。 我错过了什么,或扫描仪的文档是错误的? 编辑根据@Perception的建议,我在第一个例子中查看了sc.locale()。 它打印“da_DK”。 那么为什么它不是“en_US”,那么Locale.getDefault()方法返回的是什么?