我完全不熟悉java(我在cs第二學期,但我的第一個java)我一直在解決一些關於codeforces的問題,我來跨越一個要我比較大的字符串並打印「>」,「<」,「=」根據結果,它的工作在大多數情況下,除了當我進入一個巨大的字符串,這樣 「1460175633701201615285047975806206470993708143873675499262156511814213451040881275819636625899967479」java.lang.NumberFormatException當嘗試Integer.parseInt一個大字符串
我得到的錯誤是這樣的:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1460175633701201615285047975806206470993708143873675499262156511814213451040881275819636625899967479"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Qs.Compare.main(Compare.java:13)
這是我的代碼:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public static void main(String [] args) throws NumberFormatException, IOException
{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
long n = Integer.parseInt(bf.readLine());
long m = Integer.parseInt(bf.readLine());
String fileName = "file";
PrintWriter writer = null;
try {
writer = new PrintWriter(fileName);
}catch(FileNotFoundException e) {
e.printStackTrace();
}
if(n>m)
writer.print(">");
else
if(n<m)
writer.print("<");
else
if(n==m)
writer.print("=");
writer.close();
}
我試着用作家的第一次,但我想知道我可以使用的是System.out.print這個問題? (這個問題指示這是不可取的)對不起,我知道這是一個非常愚蠢的問題,但我是新的x.x預先感謝^ _^
使用的BigInteger不是int /長 –
@Lashane好了,所以它應該是這樣'BigInteger的N = BigInteger.parseInt(bf.readLine() ); '? – Sorata
https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html –