2016-03-19 16 views
-2

なぜparseIntが嫌いですか?それを修正するには?未解決のコンパイルの問題:型parseInt(String)の型が未定義です

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); 
    } 

     } 

    } 

​​
+0

は、ファイルパス内の余分な引用を削除してください – rahsan

+0

おかげで、しかし、主な問題 – Rabbit

+0

サイドノート:分割/解析文字列は非常に頻繁に間違っています。たとえば、スプリットによって期待される要素数が得られることを常に確認してください。コンパイルエラーのあるプログラムを実行しようとしているという例外があります。コンパイルされた言語のポイントは、コンパイラからのエラーメッセージに注意を払うことです"実行"ボタンを盲目的にクリックした場合 – GhostCat

答えて

0

は、コード内の二つの問題があります。

  • 輸入

輸入されるjava.langを削除します*;

  • パスを囲む引用符は、スプリット()メソッドのためのあなたの正規表現は正しくない
  • 正しくない、私は推測します。以下の作業をする必要があり

    name[]number 
    

    :その後、 "\\ S +"

を使用

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(); 
    } 
     ............. 
  • をあなたの区切り文字が空白の場合はだからあなたの入力ファイル形式を持っていると仮定すると

  • を正規表現として使用します。 ":\\ INPUT.TXT C"; は 文字列のファイル名= "C:\\ INPUT.TXT" である必要があります。 文字列のファイル名=":

    関連する問題