如何将字符串转换为bigInteger并存储在hashset中?

时间:2017-02-21 18:21:11

标签: java

我接受了n字符串然后我将其转换为BIgInteger之后我将其存储到HashSet但它显示运行时错误 线程“main”中的异常java.lang.NumberFormatException:零长度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()); 
     } 
} 

1 个答案:

答案 0 :(得分: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();
}