2016-03-19 4 views
-2

Warum mag parseInt nicht? Wie man es repariert?Nicht aufgelöstes Kompilierungsproblem: Die Methode parseInt (String) ist für den Typ Integer nicht definiert.

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

Bitte entfernen Sie die zusätzlichen Angebote in Dateipfad: String filename = "" C: \\ input.txt "; String Dateiname sein sollte = "C: \\ input.txt"; – rahsan

+0

Danke, aber Hauptproblem ist hier - int tempnum = Integer.parseInt (Token [1]); – Rabbit

+0

Randbemerkung: Splitting/Parsing Strings gehen sehr oft schief Prüfen Sie zB immer, ob Ihr Split die erwartete Anzahl an Elementen liefert, niemals blind auf a bestimmter Index nach dem Split. Und dann: die Ausnahme besagt, dass Sie versuchen, ein Programm auszuführen, das Kompilierungsfehler hat. Tun Sie das nicht: der ganze Sinn einer kompilierten Sprache besteht darin, dass Sie stattdessen die Fehlermeldungen des Compilers beachten Klicken Sie blind auf die Schaltfläche "Ausführen" – GhostCat

Antwort

0

Es gibt zwei Probleme im Code.

  • Entfernen Sie die Einfuhren

import java.lang *;

  • Die Anführungszeichen um den Pfad
  • Ihre regulären Ausdruck für die Methode split() nicht korrekt ist nicht korrekt sind, denke ich. So hat Ihre Eingabedatei unter der Annahme, ein Format:

    name[]number 
    

    folgendes arbeiten:

    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(); 
        } 
         ............. 
    
  • Wenn Ihr Trennzeichen Leerzeichen ist dann verwenden

"\\ s +"

als Ihr regulärer Ausdruck.

Verwandte Themen