QueueY7Y
V2EX  ›  问与答

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

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

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

    17 replies  •  2018-09-20 12:05:58 +08:00
    QueueY7Y
    QueueY7Y
    OP
    Sep 20, 2018
    1
    -999999999999 是字符串
    zwh2698
    zwh2698
    Sep 20, 2018 via Android❤️1
    2
    C Python Java ,,,,,?是自己要实现这个还是要应用?
    jacobz
    jacobz
    Sep 20, 2018 via iPhone
    3
    @zwh2698 python 不是 duck typing 吗
    QueueY7Y
    QueueY7Y
    OP
    Sep 20, 2018
    4
    @zwh2698 是 JAVA
    QueueY7Y
    QueueY7Y
    OP
    Sep 20, 2018
    5
    @jacobz 用 JAVA 抱歉
    QueueY7Y
    QueueY7Y
    OP
    Sep 20, 2018
    6
    @zwh2698 实现就好啦
    xiaonec
    xiaonec
    Sep 20, 2018
    7
    不就是 Long.parseLong(),加个 try-catch 就好么。
    momocraft
    momocraft
    Sep 20, 2018
    8
    如果这是代码的一部分:Long 字面量是 `-999999999999L`
    whoami9894
    whoami9894
    Sep 20, 2018 via Android
    9
    @jacobz
    鸭子类型和楼主说的有什么关系吗
    jacobz
    jacobz
    Sep 20, 2018 via iPhone
    10
    @whoami9894 楼主特别提到了 long,如果不考虑 python 最新的 static typing,应该不可能是 python。
    MozzieW
    MozzieW
    Sep 20, 2018
    11
    我还以为是 LeetCode, 看了发现是入门:
    ```
    String value = "-999999999999";
    System.out.println(value);
    Long result = Long.parseLong(value);
    System.out.println(result);
    ```
    结果:
    ```
    -999999999999
    -999999999999
    ```
    qiaoguoqiang
    qiaoguoqiang
    Sep 20, 2018
    12
    可以的,这问题很强势
    QueueY7Y
    QueueY7Y
    OP
    Sep 20, 2018
    13
    @xiaonec 是噢,我还用的 Integer.parseLong...谢谢啦
    QueueY7Y
    QueueY7Y
    OP
    Sep 20, 2018
    14
    @MozzieW 非常感谢
    moxiaonai
    moxiaonai
    Sep 20, 2018
    15
    长数字用字符串
    zwh2698
    zwh2698
    Sep 20, 2018
    16
    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
    zwh2698
    Sep 20, 2018
    17
    当然,如果你是应用,请使用 Long.parseLong() 来完成。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1556 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 17:45 · PVG 01:45 · LAX 09:45 · JFK 12:45
    ♥ Do have faith in what you're doing.