代码中奇怪的数字/字符

时间:2014-04-04 17:31:18

标签: java

我已经下载了一个开源程序,发现了这个:

public static final char playerNameXlateTable[] = { '_', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '[', ']', '/', '-', ' ' };

    public static String longToPlayerName2(long l) {
        int i = 0;
        char ac[] = new char[99];
        while (l != 0L) {
            long l1 = l;
            l /= 37L;
            ac[11 - i++] = playerNameXlateTable[(int) (l1 - l * 37L)];
        }
        return new String(ac, 12 - i, i);
    }

我试图找出37L的用途。 我首先想到它可能是Hex,但我发现Hex没有任何'L's。

有人知道那是什么类型的吗?它转换成实际数字的是什么?

非常感谢!

3 个答案:

答案 0 :(得分:3)

大写字母L只是指明该数字是长文字。这封信" l"也可以使用它,但明智的不推荐,因为它很难从" 1"中分辨出来。同样," f"数字后面的字母表示浮点文字。

请参阅docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

答案 1 :(得分:0)

嗯,L或l只是把它转换为长。

答案 2 :(得分:0)

37L表示long类型的37。这样做是为了保持乘法的类型