2017-02-21 26 views
1

我採取了ň字符串,然後我把它轉換成BIGINTEGER之後,我將其存儲到HashSet的但它顯示運行時錯誤線程「main」 java.lang.NumberFormatException 例外:零長度的BigInteger如何將字符串轉換爲bigInteger並存儲在哈希集?

我的代碼是:

import java.io.*; 
import java.util.*; 
import java.text.*; 
import java.math.*; 
import java.util.regex.*; 
class ex { 
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); int n = in.nextInt();   
     HashSet<BigInteger> hs=new HashSet<BigInteger>(); 
     for(int i=0;i<n;i++) { 
       String str=in.nextLine(); 
       BigInteger bi=new BigInteger(str); 
       hs.add(bi); 
     } 
     Iterator itr=hs.iterator(); 
     while(itr.hasNext()) 
     System.out.println(itr.next()); 
    } 
} 
+0

SO不是一個留言板,你不應該試圖解釋你的問題在自己的意見(和*** ***肯定不嘗試在那裏添加代碼)。相反,[編輯]你的問題,使其更好。 – azurefrog

回答

1

使用in.next()代替in.nextLine(),不要忘記關閉Scanner對象in

以下是完整main方法:

public static void main(String[] args) 
{ 
    Scanner in = new Scanner(System.in); 
    int n = in.nextInt(); 
    HashSet<BigInteger> hs = new HashSet<BigInteger>(); 
    for (int i = 0; i < n; i++) { 
     String str = in.next(); 
     BigInteger bi = new BigInteger(str); 
     hs.add(bi); 
    } 
    Iterator<BigInteger> itr = hs.iterator(); 
    while (itr.hasNext()) 
    System.out.println(itr.next()); 
    in.close(); 
} 
相關問題