V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
QueueY7Y
V2EX  ›  问与答

-999999999999 有什么好的方法转换为 long 型吗?

  •  
  •   QueueY7Y · Sep 20, 2018 · 2366 views
    This topic created in 2775 days ago, the information mentioned may be changed or developed.

    大家好,我是新手,请问-999999999999 有什么好的方法转换为 long 型吗?

    17 replies    2018-09-20 12:05:58 +08:00
    QueueY7Y
        1
    QueueY7Y  
    OP
       Sep 20, 2018
    -999999999999 是字符串
    zwh2698
        2
    zwh2698  
       Sep 20, 2018 via Android   ❤️ 1
    C Python Java ,,,,,?是自己要实现这个还是要应用?
    jacobz
        3
    jacobz  
       Sep 20, 2018 via iPhone
    @zwh2698 python 不是 duck typing 吗
    QueueY7Y
        4
    QueueY7Y  
    OP
       Sep 20, 2018
    @zwh2698 是 JAVA
    QueueY7Y
        5
    QueueY7Y  
    OP
       Sep 20, 2018
    @jacobz 用 JAVA 抱歉
    QueueY7Y
        6
    QueueY7Y  
    OP
       Sep 20, 2018
    @zwh2698 实现就好啦
    xiaonec
        7
    xiaonec  
       Sep 20, 2018
    不就是 Long.parseLong(),加个 try-catch 就好么。
    momocraft
        8
    momocraft  
       Sep 20, 2018
    如果这是代码的一部分:Long 字面量是 `-999999999999L`
    whoami9894
        9
    whoami9894  
       Sep 20, 2018 via Android
    @jacobz
    鸭子类型和楼主说的有什么关系吗
    jacobz
        10
    jacobz  
       Sep 20, 2018 via iPhone
    @whoami9894 楼主特别提到了 long,如果不考虑 python 最新的 static typing,应该不可能是 python。
    MozzieW
        11
    MozzieW  
       Sep 20, 2018
    我还以为是 LeetCode, 看了发现是入门:
    ```
    String value = "-999999999999";
    System.out.println(value);
    Long result = Long.parseLong(value);
    System.out.println(result);
    ```
    结果:
    ```
    -999999999999
    -999999999999
    ```
    qiaoguoqiang
        12
    qiaoguoqiang  
       Sep 20, 2018
    可以的,这问题很强势
    QueueY7Y
        13
    QueueY7Y  
    OP
       Sep 20, 2018
    @xiaonec 是噢,我还用的 Integer.parseLong...谢谢啦
    QueueY7Y
        14
    QueueY7Y  
    OP
       Sep 20, 2018
    @MozzieW 非常感谢
    moxiaonai
        15
    moxiaonai  
       Sep 20, 2018
    长数字用字符串
    zwh2698
        16
    zwh2698  
       Sep 20, 2018
    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);
    }
    }


    给你啦,自己整理整理
    zwh2698
        17
    zwh2698  
       Sep 20, 2018
    当然,如果你是应用,请使用 Long.parseLong() 来完成。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   824 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 20:50 · PVG 04:50 · LAX 13:50 · JFK 16:50
    ♥ Do have faith in what you're doing.