也许这个问题是愚蠢的,但我在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
怎么可能在数字中间得到'-'? –