所以我试图解析一个包含一个对于Int存储来说太大的数字的字符串。但我需要字符串的值,因为我正在划分它。我可以将字符串解析为Long吗?
n = Long.parseLong(string);
那样的?或者有没有办法我可以通过数字对字符串进行分割而不必将字符串转换为数字?我正在使用的代码是这样的:
private static String getFinished(String x, int y){
int word = Integer.parseInt(x);
word = word/y;
我使用的号码是:1980715126555015951540148577071512651650 但我可能会更长时间地使用数字。
答案 0 :(得分:3)
我可以将字符串解析为Long吗?
是。但数量不是太大。长/龙的范围是-9,223,372,036,854,775,808到+9,223,372,036,854,775,807。
另一种方法是使用BigInteger
(javadoc)。它可以应对更大的数字。 (BigInteger
的上限很可能取决于您可用的内存量。)
我使用的号码是:1980715126555015951540148577071512651650
这需要一个BigInteger。例如:
BigInteger small = new BigInteger("1980715126555015951540148577071512651650");
BigInteger notQuiteSoSmall = small.add(BigInteger.ONE);
注意:
BigInteger
没有运算符重载。您必须使用显式方法调用。BigInteger
个对象就像String
个对象;即它们是不变的。算术方法产生一个新的BigInteger
对象。答案 1 :(得分:1)
您要找的班级是BigInteger
。或者BigDecimal
用于花车。
答案 2 :(得分:0)
如果不将字符串解析为数字,就不能分割字符串。
$jsonArray = array();
$jsonArray['result'] = 'result';
$jsonArray['data'] = 'data';
echo json_encode($jsonArray);
100%合法,只要您使用try / catch块包装它或从方法中抛出异常。
编辑:
根据您添加的示例字符串,long num = Long.parseLong(str);
可能对您不再有帮助。检查long
。