也許這個問題是愚蠢的,但我在Java中是新的,我不能算出這個...問題與BigInteger的
所以我有兩個clases - 數字和BigDigit,問題就在這裏Digit2.sub(Digit1);
時Digit1是否定的,我得到
異常線程「main」 java.lang.NumberFormatException:非法嵌入符號字符 在java.math.BigInteger中(來源不明)
但是當我試圖通作爲argume nt不是Digit1,但是例如「-18370」,那麼一切都可以,但基本上它應該是相同的。如果它是積極的,每一件作品都像魅力一樣。任何人都可以給我一個提示,我錯了嗎?方法'add'始終有效,但'sub'只有正數Digit1。
修訂 此代碼的工作,當Digit1
爲正,或者如果uncomented Digit1.add(Digit2);
,然後當工作和爲正。但不是消極:(
import java.math.BigInteger;
public class Digit {
public static void main(String[] args)
{
BigDigit Digit1 = new BigDigit("-18730");
BigDigit Digit2 = new BigDigit("77730");
// Digit1.add(Digit2);
Digit1.display();
Digit1.reverse();
Digit1.display();
Digit2.sub(Digit1);
Digit2.display();
Digit2.reverse();
Digit2.display();
}
}
class BigDigit {
public String number;
public BigInteger first;
public BigInteger second;
public BigDigit(String str) {number = str;}
public String add(BigDigit sk) {
first = new BigInteger(number);
second = new BigInteger(sk.number);
return number = first.add(second).toString();
}
public String reverse() {
return number = new StringBuffer(number).reverse().toString();
}
public void sub(BigDigit sk) {
first = new BigInteger(number);
second = new BigInteger(sk.number);
}
public void display() {System.out.println(number);}
}
我認爲這個錯誤意味着你在數字中間有一個'-',而不是在開始。你能提供一個我們可以運行的例子嗎?順便說一句你似乎不需要第一個或第二個字段,也不需要將其存儲爲字符串。 –
你的代碼適用於我(我添加了缺失的2個大括號,假設它們應該是2個獨立的頂級課程) – Aaron
怎麼可能在數字中間得到'-'? –