簡體   English   中英

java-將數字格式解析為字符串,格式為byte / short / integer / long

[英]java - parse number formatted as string to byte/short/integer/long

我正在用ANTLR解析一個簡單的正數:

NUMBER : ('0'..'9')+;

在兩種情況下,解析此數字的建議方法是什么?

byte (8 bits)
short (16 bits)
int (32 bits)
long (64 bits)
BigInteger (x bits)

就是說,例如,如果數字適合一個short ,我更喜歡分配一個short ,而不是一個integer ,一個long或一個BigInteger

這應該盡可能高效。 出於這個原因,我不願意先嘗試作為byte ,然后嘗試作為short ,...,其中異常表示應嘗試下一種類型。

如果目標是Java,則解析原始類型沒有任何意義,因為目標語言可以有效地處理這些類型。 因此,如果您想捕獲語言應用程序中的每個標記,我建議只定義基本類型。 如果目標位於Java中,則應該將大整數作為引用類型(解析器規則)進行處理。 如果您使用不同的目標語言,則它可能具有不同的上下文。

primitiveType
    :   'boolean'
    |   'char'
    |   'byte'
    |   'short'
    |   'int'
    |   'long'
    |   'float'
    |   'double'
    ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM