2017-02-21 4 views
1

私はその後、私はHashSetの中にそれを保存し、その後のBigIntegerに変換します。しかし、それはランタイムエラーに「メイン」java.lang.NumberFormatExceptionスレッドで 例外を示すn個の文字列を取っていた:ゼロの長さのBigIntegerをstringを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(); 
} 
関連する問題