Tag: java.util.scanner

带有InputStream的Java Scanner无法正常工作

我正在从源读取一个InputStream(fis),我必须在其上进行多次搜索。 我正在使用Scanner类,并在每次搜索后实例化它。 但它只是第一次工作。 有没有办法重置扫描仪对象? 我无法控制流。 Scanner sc = new Scanner(new BufferedReader(new InputStreamReader( fis, MIFConstants.ENCODING_UTF_8))); int count = 0; while (sc.hasNextLine()) { count++; sc.nextLine(); } System.out.println(count); sc = new Scanner(new BufferedReader(new InputStreamReader(fis, MIFConstants.ENCODING_UTF_8))); count = 0; while (sc.hasNextLine()) { count++; sc.nextLine(); } System.out.println(count); 第二个印刷品返回零。 关于这个的任何想法?

Java扫描程序问题(JFrame)

我正在尝试使用扫描仪编辑塔防游戏的等级。 但是它不会将级别(平铺图像)更新为自定义文件的级别(0是草1是石头-1是什么,等等)。 我找到了错误,但我如何解决它,我需要添加/更改什么来摆脱这个? java.lang.NullPointerException at Levels.loadLevels(Levels.java:11) at Window.define(Window.java:28) at Window.paintComponent(Window.java:44) 第11行: for(int y=0;y<Window.room.block.length;y++) {第28行: levels.loadLevels(new File(“levels/level1.level”)); 第44行: define(); 这是扫描仪文件: import java.io.*; import java.util.*; public class Levels { public void loadLevels(File loadPath) { try { Scanner loadLevelsScanner = new Scanner(loadPath); while(loadLevelsScanner.hasNext()) { for(int y=0;y<Window.room.block.length;y++) { for(int x=0;x<Window.room.block[0].length;x++) { Window.room.block[y][x].groundID = loadLevelsScanner.nextInt(); } } for(int y=0;y<Window.room.block.length;y++) { […]

Java Scanner找不到行,然后Scanner关闭错误?

我有Java代码要求用户输入,然后将这些数据存储在字符串变量中。 下面的函数是一个名为’number’的类的一部分,在main函数中调用。 public static void setVal(int i){ Scanner readIn = new Scanner(System.in); //while (readIn.hasNextLine()){ str = readIn.nextLine(); numCheck = false; if (i == 1){ while (!numCheck){ if (str.contains(” “)){ System.out.println(“Please input a single item.”); str = readIn.nextLine(); } else if (!isNumeric(str)){ System.out.println(“Please input a valid number.”); str = readIn.nextLine(); } else { numCheck = true; […]

不同的Java Scanner用于输入不同类型

想象一下下面的scanario:我有一个程序要求输入一个整数,然后是一个String输入。 int age=0; String name; Scanner sc = new Scanner(System.in); System.out.print(“Enter Age: “); age = sc.nextInt(); System.out.print(“Enter Name: “); name= sc.nextLine(); 使用aobe代码,我没有机会输入名称。 所以通常我会声明2个扫描仪对象,如下所示: int age=0; String name; Scanner sc = new Scanner(System.in); Scanner sc2 = new Scanner(System.in); //2nd Scanner object System.out.print(“Enter Age: “); age = sc.nextInt(); System.out.print(“Enter Name: “); name= sc2.nextLine(); //Using 2nd Scanner Object […]

从文本文件将数据输入动态数组时出现NullPointerException

我正在建立一个投票系统,用户使用他们的学号登录并进行选择。 一旦有人投票,他们就无法再次登录。 我做了一个对象; 学生,包含学生编号的字符串和该学生编号是否已经投票的布尔值(均为私人)。 我制作了一个这种类型的动态数组,以便通过使用扫描仪读取的文本文件接受给定数量的学生。 但是,当我尝试填充对象数组中的学生编号字符串时,我得到一个NullPointerException。 Scanner IS从文本文件中读取信息,但是当我尝试将信息放入Student对象的私有字符串时,会发生错误。 当我使用一个字符串数组时,一切正常,但我没有布尔值来判断某人是否已经投票。 我对编程很陌生,不知道问题是什么。 有人可以解释一下有什么问题以及如何修复它? 读取文本文件并填充数组的方法(学生是全局声明和构造的,最初的大小为0): public static void getStudentNumbers(){ int a = 0; while(fileReader.hasNext()){ if (a >= students.length) { int newSize = 1 + students.length; Student[] newData = new Student[newSize]; System.arraycopy(students, 0, newData, 0, students.length); students = newData; } students[a].setStudentNumber(fileReader.nextLine()); //Error occurs here a++; } } 学生对象: public […]

未报告的exceptionjava.io.FileNotFoundException;?

我想打开一个文件并扫描它来打印它的令牌,但我收到错误:未报告的exceptionjava.io.FileNotFoundException; 必须被捕获或声明被抛出Scanner stdin = new Scanner(file1); 该文件位于具有正确名称的同一文件夹中。 import java.util.Scanner; import java.io.File; public class myzips { public static void main(String[] args) { File file1 = new File (“zips.txt”); Scanner stdin = new Scanner (file1); String str = stdin.next(); System.out.println(str); } }

从特定行开始读取文件

我有一个文件similaire:… The hotspot server JVM has specific code-path optimizations # which yield an approximate 10% gain over the client version. export CATALINA_OPTS=”$CATALINA_OPTS -server” #############HDK1001############# # Disable remote (distributed) garbage collection by Java clients # and remove ability for applications to call explicit GC collection export CATALINA_OPTS=”$CATALINA_OPTS -XX:+DisableExplicitGC” # Check for application specific parameters at startup […]

使用next()或nextFoo()后,Scanner正在跳过nextLine()?

我正在使用Scanner方法nextInt()和nextLine()来读取输入。 它看起来像这样: System.out.println(“Enter numerical value”); int option; option = input.nextInt(); // Read numerical value from input System.out.println(“Enter 1st string”); String string1 = input.nextLine(); // Read 1st string (this is skipped) System.out.println(“Enter 2nd string”); String string2 = input.nextLine(); // Read 2nd string (this appears right after reading numerical value) 问题是在输入数值后,跳过第一个input.nextLine()并执行第二个input.nextLine() ,这样我的输出如下所示: Enter numerical value 3 // […]

将文件中的对象添加到程序中

我正在编程游戏,在程序中我需要根据文件添加新的敌人。 现在我的问题是我在尝试读取此文件时遇到了无限循环。 我对编程比较陌生,所以我不确定如何解决这个问题。 这是问题代码。 文件中条目的示例如下:“Troll,6,4,1”。 谢谢您的帮助。 try { Scanner input = new Scanner(new File(filename)); while(input.hasNext()); { input.useDelimiter(“,|\n”); String name = input.next(); int strength = input.nextInt(); int speed = input.nextInt(); int numVials = input.nextInt(); Enemy newEnemy = new Enemy(name, strength, speed, numVials); opponents.add(newEnemy); input.close(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); […]

Java Scanner分隔符用法

我想为扫描程序指定分隔符,该分隔符在某些模式上分割,但不会从标记中删除该模式。 我似乎无法使这项工作,因为正则表达式识别的任何东西也被作为分隔符的一部分被吃掉。 有什么建议? 我的具体问题,我的文件看起来像: text/numbers mix numbers numbers text/numbers mix numbers numbers numbers . . 我想从文本/数字mix +行中分离,直到下一个文本/数字混合。 我有正则表达式来识别它们,但正如所述,使用它作为分隔符吃掉我想要的部分。 编辑:代码添加: static final String labelRegex=”\\s*[^01\\s*]\\w+\\s*”; static final Pattern labelPattern = Pattern.compile(labelRegex, Pattern.MULTILINE); 是我用来识别文本/数字位的模式(我知道我的数字行包含由空格分隔的所有1/0)。 初始化扫描仪时: stateScan = new Scanner(new BufferedReader(new FileReader(source))); stateScan.useDelimiter(labelPattern); 吃标签,然后离开行。 我目前有一个工作实现,它在同一来源的两个缓冲文件读取器上启动两个扫描程序,一个按状态拆分,另一个按标签拆分。 我真的希望它只是一个抓住标签+状态。