2016-03-19 3 views
-2

Pourquoi il n'aime pas parseInt? Comment le réparer?Problème de compilation non résolu: La méthode parseInt (String) n'est pas définie pour le type Entier

import java.lang.*; 
import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Scanner; 
import java.util.List; 
import java.lang.*; 

public class Table { 

static class Data 
{ 
    private String name = ""; 
    private int num = 0; 

    public Data(String name, int num) 
    { 
     this.name = name; 
     this.num = num; 
    } 

    public String getName() 
    { 
     return name; 
    } 

    public int getNum() 
    { 
     return num; 
    } 

    public String toString() 
    { 
     return name + " " + num; 
    } 
    } 



    public static void main(String[] args) throws IOException 
    { 

    List<Data> table = new ArrayList<Data>(); 

    try 
    { 
     String filename= ""C:\\input.txt"; 
     BufferedReader reader = new BufferedReader(new FileReader(filename)); 
     String line = reader.readLine(); 

     while(line != null) 
     { 
      String[] tokens = line.split("[ ]+"); 

      String tempname = tokens[0]; 
      int tempnum = Integer.parseInt(tokens[1]); 

      Data temp = new Data(tempname,tempnum); 

      table.add(temp); 
      line = reader.readLine(); 
     } 
     reader.close(); 
    } 
    catch(FileNotFoundException n) 
    { 
     System.out.println("file not found"); 
    } 
    catch(IOException a) 
    { 
     a.printStackTrace(); 
    } 

    for(Data n:table) 
    { 
     System.out.println(n); 
    } 

     } 

    } 

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The method parseInt(String) is undefined for the type Integer 

at Table.main(Table.java:58) 
+0

S'il vous plaît enlever les citations supplémentaires dans le chemin du fichier: chaîne filename = "" C: \\ INPUT.TXT "; devrait être chaîne filename = "C: \\ input.txt", – rahsan

+0

Merci, mais le problème principal est ici - int tempnum = Integer.parseInt (jetons [1]); – Rabbit

+0

Note de côté: les chaînes de fractionnement/parsing se trompent souvent Vérifiez toujours par exemple que votre fractionnement vous donne le nombre attendu d'éléments; certain index après split Et puis: l'exception dit que vous essayez d'exécuter un programme qui a des erreurs de compilation Ne faites pas cela: le point entier d'un langage compilé est que vous faites attention aux messages d'erreur du compilateur de cliquer aveuglément sur le bouton "run" – GhostCat

Répondre

0

Il y a deux problèmes dans le code.

  • Supprimer les importations

java.lang import *;

  • La méthode des guillemets autour du chemin ne sont pas correctes
  • Votre expression régulière pour la division() n'est pas correct, je suppose. Donc, en supposant que votre fichier d'entrée a un format:

    name[]number 
    

    les éléments suivants doivent travailler:

    public static void main(String[] args) throws IOException { 
    
    List<Data> table = new ArrayList<Data>(); 
    
    try { 
        String filename= "/home/kiflem/input.txt"; 
        BufferedReader reader = new BufferedReader(new FileReader(filename)); 
        String line = reader.readLine(); 
    
        while(line != null) { 
         String[] tokens = line.split("\\[\\s*\\]+"); 
         if (tokens != null && tokens.length == 2) { 
          String tempname = tokens[0]; 
          int tempnum = Integer.parseInt(tokens[1]); 
          Data temp = new Data(tempname,tempnum); 
          table.add(temp); 
         } 
         line = reader.readLine(); 
        } 
         ............. 
    
  • Si votre delimiter est des espaces puis utilisez

"\\ s +"

comme expression régulière.