输出到控制台时出现Java StringTokenizer错误

耶稣·格雷戈里奥·阿尔图夫·罗阿

我正在尝试使用该类StringTokenizer从文本文件中拆分字符串,但是当我运行该应用程序时,编译器会在Netbeans控制台中打印我正在拆分的单词,但也会显示异常。

这是我的代码:

package Calqfunny; 

import java.io.BufferedReader; 
import java.io.FileReader;
import java.util.StringTokenizer;
import javax.swing.JOptionPane;

public class Files {

public String direccion;

public Files(){

    direccion = " ";
}

public Files(String direccion){

    this.direccion = direccion;
}




public String leerTxt(String direccion){

    String auxiliar = " ";

    try{

        BufferedReader br = new BufferedReader(new FileReader(direccion));
        String temp = " "; //Aqui guardamos el texto del archivo temporalmente
        String banana; //aqui almacenamos 


        while((banana = br.readLine())!=null){
            //se realiza el ciclo mientras que el archivo tenga datos.

           temp = temp + banana; 

        }
        auxiliar = temp;

    }catch(Exception e){

    JOptionPane.showMessageDialog(null,"\"¿Cómo vas a pedir un archivo que no existe? :v\"");

    }

    String nombre = null, apellido = null, edad = null, bday = null;
   StringTokenizer tokens = new StringTokenizer (auxiliar, ";");

    System.out.println("Nombre\tApellido Edad\tFecha de Nac.");
    while(tokens.hasMoreTokens()){


          nombre = tokens.nextToken();
          apellido = tokens.nextToken();
          edad = tokens.nextToken();
          bday = tokens.nextToken();


          System.out.println(nombre+"\t"+apellido+"\t"+edad+"\t"+bday);

    }

        return auxiliar;
  } 
}

这是我的应用程序的输出

Nombre  Apellido  Edad  Fecha de Nac.
David    Villa     31        1985
Andrea   Pirlo     36        1980
Lionel   Messi     29        1987
Tomas    Rincon    27        1989

这是编译器抛出的异常

Exception in thread "main" java.util.NoSuchElementException

at java.util.StringTokenizer.nextToken(StringTokenizer.java:349)

at Calqfunny.Files.leerTxt(Files.java:69)

at Calqfunny.Mein.main(Mein.java:14)

C:\Documents and Settings\Goyo\Configuración local\Datos de    
programa\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned:1

BUILD FAILED (total time: 0 seconds)

我该怎么解决?

史蒂夫

您的while循环正在测试是否StringTokenizer还有一个令牌。但是随后您又读了四个令牌。当令牌数不能被四整除时,这将崩溃。

您可以放心地做的是:

StringTokenizer tokens = new StringTokenizer(auxiliar, ";");

while(tokens.hasMoreTokens()){
    token = tokens.nextToken();
    System.out.println(token);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Play控制台kotlin中出现此错误。UninitializedPropertyAccessException

Java输出控制台错误消息到文件?

使用testng运行Rest Assured API测试时出现控制台错误

在jQuery中使用变量时出现控制台错误

控制台输出顺序错误

从Chrome控制台发出重复的Ajax请求时出现“资源不足错误”

在Electron中出现错误消息和控制台日志?

如何处理控制台输出到网络文件中的间歇性错误

使用“ v-if”指令时,控制台出现错误。无限循环

在Rails上使用外部JavaScript库时,控制台出现错误。我正在使用Webpack

如何抑制来自QWebEngineView错误的控制台输出?

fgetc将错误的字符输出到控制台

控制台输出错误的单引号字符(â)

循环遍历JSON数据时出现控制台错误

使用互斥锁的Threadfunc中错误的控制台输出

运行Rails控制台时出现加载错误

Java控制台在启动时也会关闭,因此无法看到jnlp应用程序可能出现的启动错误。如何查看其输出?

控制台窗口出现403(禁止)错误

使用makefile编译代码时出现错误。使用控制台工作

控制台日志输出QtCreator中的错误字符

从对象访问属性时出现控制台错误

在 HighCharts 散点图中更改线条颜色时出现控制台错误

需要帮助修复控制台窗口的错误输出。

如何将命令的输出重定向到函数但抑制错误并输出到控制台?

将所有元素输出到控制台时出现问题

运行“build/nodes/runnodes”时出现控制台错误

启动 Google 助理控制台时出现 DialogFlow 错误

为什么从 mysql 控制台插入 mysql.user 表时出现“不可插入”错误?

将 aab 上传到游戏控制台时出现“您指定的域名 '' 无效”错误