2016-11-18 97 views
-3

下面的代码在提供大小整数后不起作用,因此显示错误。Java程序在提供大小输入后给出错误

错误

Exception in thread "main" java.lang.NumberFormatException: For input string: "" 
at java.lang.NumberFormatException.forInputString(Unknown Source) 
at java.lang.Integer.parseInt(Unknown Source) 
at java.lang.Integer.parseInt(Unknown Source) 
at ARR.Number(Arr.java:13) 
at ARR1.main(Arr.java:42)' 

Java程序

import java.io.BufferedReader; 
import java.io.IOException; 

class ARR 
{ 
public static BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in)); 
int arr[]; 
void Number (int n) throws IOException 
{ 
    for (int i=0; i<n; i++) 
    { 
     arr[i]= Integer.parseInt(br1.readLine()); 
    } 
} 
void display(int n) 
{ 
    for (int i=0; i<n; i++) 
    { 
     System.out.print(arr[i]+"\t"); 
    } 
} 
void Search(int n,int num) 
{ 
    for (int i=0; i<n; i++) 
    { 
     if (arr[i]== num) 
     { 
      System.out.println("Number Found"); 
     } 
    } 
} 
} 
class ARR1 
{ 
public static void main (String[] args) throws IOException 
{ 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    ARR obj = new ARR(); 
    System.out.println("Enter No size: "); 
    int a = Integer.parseInt(br.readLine()); 
    obj.Number(a); 
    obj.display(a); 
    System.out.println(); 
    System.out.println("Enter the Number to search:"); 
    int b= Integer.parseInt(br.readLine()); 
    obj.Search(a,b); 
} 
} 
+0

您试图解析非数值数据为整数,这就是问题所在。 –

+0

'对于输入字符串:“”'那里没有数字。这是一个问题,如果没有号码,你还没有告诉计算机该做什么。这将是问题。 – ifly6

+0

@Tim Biegeleisen和@ ifly6:在提供了arrray的大小后说5 ..我必须将数据存储在数组中。只要我给一个数字说5我得到的错误..请帮助我如何修改我的代码 – Abhishek

回答

0

我的回答得到了这个..是数组对象中未产生的问题..以下是帮助代码我出去了。

void Number (int n) throws IOException 
{ 
    **arr=new int[n];** 
    for (int i=0; i<n; i++) 
    { 
     arr[i]= Integer.parseInt(br1.readLine()); 
    } 
} 
0
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

class ARR { 

    private int arrSize; 
    private int[] arr; 
    private BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

    void Number(int n) throws IOException { 
     arrSize = n; 
     arr = new int[arrSize]; 
     System.out.println("Enter numbers you want to input"); 
     for (int i = 1; i <= n; i++) { 
      System.out.print(i+": "); 
      try { 
       arr[i-1] = Integer.parseInt(br.readLine()); 
      } catch (NumberFormatException ne) { 
       i--; 
       System.out.println("Error. Please Input a Number!"); 
      } 
     } 
    } 

    void display(int n) { 
     for (int i = 0; i < n; i++) { 
      System.out.print(arr[i] + "\t"); 
     } 
    } 

    void Search(int n, int num) { 
     boolean isNumberFound = false; 
     for (int i = 0; i < n; i++) { 
      if (arr[i] == num) { 
       isNumberFound = true; 
       break; 
      } 
     } 

     if(isNumberFound) { 
      System.out.println("Number Found"); 
     } else { 
      System.out.println("Not on the List"); 
     } 



    } 
} 

public class ARR1 { 
    public static void main(String[] args) throws IOException { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     ARR obj = new ARR(); 

     int a = 0; 
     boolean isWrong = true; 
     while (isWrong) { 
      try { 
       System.out.print("Enter No size: "); 
       a = Integer.parseInt(br.readLine()); 
       isWrong = false; 
      } catch (NumberFormatException ne) { 
       System.out.println("Error. Please Input a Number!"); 
      } 
     } 
     obj.Number(a); 
     obj.display(a); 
     System.out.println(); 


     isWrong = true; 
     int b = 0; 
     while (isWrong) { 
      try { 
       System.out.println("Enter the Number to search:"); 
       b = Integer.parseInt(br.readLine()); 
       isWrong = false; 
      } catch (NumberFormatException ne) { 
       System.out.println("Error. Please Input a Number!"); 
      } 
     } 
     obj.Search(a, b); 
    } 
} 

我编辑代码。当您输入不适当的输入时,我使用了一些Exception Handling来避免错误。为你研究异常处理将知道如何使用你遇到的异常。稍后,这可能对您的代码有利。

看到这个链接。

Exception Handling

+0

非常感谢@msagala。这真的帮了我很多.. – Abhishek

+0

欢迎你。如果我有这个权利,请付一张支票来帮助别人。谢谢。 – msagala25