NumberFormatException:无效的 BigInteger
NumberFormatException: Invalid BigInteger
这是我的部分代码:
public class Result extends Fragment{
BigInteger sumCipher = BigInteger.ZERO;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.result, container, false);
return rootView;
}
@Override
public void onStart() {
super.onStart();
new AsyncGetSumCipher().execute();
}
public void setSumCipher(BigInteger sum){
this.sumCipher = sum;
}
public BigInteger getSumCipher(){
return sumCipher;
}
}
AsyncGetSumCipherclass显然包含doInBackground和onPostExecute。后者如下:
protected void onPostExecute(StringBuilder result) {
super.onPostExecute(result);
BigInteger bi = new BigInteger(result.toString());
setSumCipher(bi);
}
Here is the error
有人可以帮助我吗?我已经坚持了几个星期了:(
我猜你的 result.toString()
returns 无效 bigInt。请登录并查看值是多少。
这取自 oracle 文档:
大整数
构造函数:public BigInteger(String val)
将 BigInteger 的十进制字符串表示形式转换为 BigInteger。字符串表示形式包含一个可选的减号,后跟一个或多个十进制数字序列。字符到数字的映射由 Character.digit 提供。 字符串不能包含任何无关字符(例如空格)。
参数:
val - BigInteger 的十进制字符串表示形式。
投掷:
NumberFormatException
- val 不是 BigInteger 的有效表示。
另请参阅:
Character.digit(char, int)
https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#BigInteger(java.lang.String)
问题已通过执行以下操作解决:
BigInteger bi = new BigInteger(result.toString().trim().replaceAll("\"",""));
这是我的部分代码:
public class Result extends Fragment{
BigInteger sumCipher = BigInteger.ZERO;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.result, container, false);
return rootView;
}
@Override
public void onStart() {
super.onStart();
new AsyncGetSumCipher().execute();
}
public void setSumCipher(BigInteger sum){
this.sumCipher = sum;
}
public BigInteger getSumCipher(){
return sumCipher;
}
}
AsyncGetSumCipherclass显然包含doInBackground和onPostExecute。后者如下:
protected void onPostExecute(StringBuilder result) {
super.onPostExecute(result);
BigInteger bi = new BigInteger(result.toString());
setSumCipher(bi);
}
Here is the error
有人可以帮助我吗?我已经坚持了几个星期了:(
我猜你的 result.toString()
returns 无效 bigInt。请登录并查看值是多少。
这取自 oracle 文档:
大整数
构造函数:public BigInteger(String val)
将 BigInteger 的十进制字符串表示形式转换为 BigInteger。字符串表示形式包含一个可选的减号,后跟一个或多个十进制数字序列。字符到数字的映射由 Character.digit 提供。 字符串不能包含任何无关字符(例如空格)。
参数: val - BigInteger 的十进制字符串表示形式。
投掷:
NumberFormatException
- val 不是 BigInteger 的有效表示。
另请参阅:
Character.digit(char, int)
https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#BigInteger(java.lang.String)
问题已通过执行以下操作解决:
BigInteger bi = new BigInteger(result.toString().trim().replaceAll("\"",""));