大家好,我是新手,请问-999999999999 有什么好的方法转换为 long 型吗?
1
QueueY7Y OP -999999999999 是字符串
|
2
zwh2698 2018-09-20 09:19:19 +08:00 via Android 1
C Python Java ,,,,,?是自己要实现这个还是要应用?
|
7
xiaonec 2018-09-20 09:31:33 +08:00
不就是 Long.parseLong(),加个 try-catch 就好么。
|
8
momocraft 2018-09-20 09:39:40 +08:00
如果这是代码的一部分:Long 字面量是 `-999999999999L`
|
9
whoami9894 2018-09-20 09:41:47 +08:00 via Android
@jacobz
鸭子类型和楼主说的有什么关系吗 |
10
jacobz 2018-09-20 09:45:05 +08:00 via iPhone
@whoami9894 楼主特别提到了 long,如果不考虑 python 最新的 static typing,应该不可能是 python。
|
11
MozzieW 2018-09-20 10:09:51 +08:00
我还以为是 LeetCode, 看了发现是入门:
``` String value = "-999999999999"; System.out.println(value); Long result = Long.parseLong(value); System.out.println(result); ``` 结果: ``` -999999999999 -999999999999 ``` |
12
qiaoguoqiang 2018-09-20 10:11:04 +08:00
可以的,这问题很强势
|
15
moxiaonai 2018-09-20 10:38:57 +08:00
长数字用字符串
|
16
zwh2698 2018-09-20 12:04:32 +08:00
public class Helloc {
public static long parseLong(String number) { long n = 0; if (number == null || number.isEmpty()) { System.out.println("Number is null or empty"); return n; } boolean isNegative = false; if (number.charAt(0) == '-') { isNegative = true; } else { n = getValue(number.charAt(0)); } for (int i = 1; i < number.length(); i++) { n = n * 10 + getValue(number.charAt(i)); } return isNegative ? (-1 * n) : n; } public static int getValue(char ch) { int value = ch; if (value < '0' || value > '9') { throw new NumberFormatException(); } return value - '0'; } public static void main(String[] args) { long v = parseLong("-999999999999"); System.out.println(v); } } 给你啦,自己整理整理 |
17
zwh2698 2018-09-20 12:05:58 +08:00
当然,如果你是应用,请使用 Long.parseLong() 来完成。
|