2015-11-24 80 views
0

假設我有一個整數數組byte。我將如何從這些ASCII碼回到現實世界的整數?在Java中,我將如何從ASCII碼轉換爲整數?

例如,如果我們讀一個整數的簡單的文本文件,就像這樣:

1 
    2 
    3 
    4 
    5 
    6 
    7 
    8 
    9 
    10 

...成字節數組,像這樣的:

boolean empty = true; 
while ((readChars = is.read(c)) != -1) { 
    for (int i = 0; i < readChars; ++1) { 
    Byte b = c[i]; 
    int xx = b.intValue(); 
    lastLine = xx; 

    if (c[i] == '\n'){ 
     ++count; 
     empty = true; 
    } else { 
     empty = false; 
    } 

    } 
    } 
    if (!empty) { 
    count++; 
    } 

然後,一旦該文件(這只是正常的整數)被放入字節數組中。如果我們然後嘗試將其重新打印回屏幕,它將不會打印爲第5號,而是作爲ASCII碼 - 這是53

只是想環繞該編碼話題我的頭,任何提示讚賞感謝

感謝

+2

你爲什麼要讀入一個'字節[]'? 'String'或'char'讀取文本文件有什麼問題? – Thilo

回答

2

你可以施放從charint。喜歡的東西,

char[] chars = "12345".toCharArray(); 
for (char ch : chars) { 
    System.out.printf("%c = %d%n", ch, (int) ch); 
} 

輸出是

1 = 49 
2 = 50 
3 = 51 
4 = 52 
5 = 53 
+0

嗨艾略特,我稍微更新了我的問題。我不知道,也許我的新代碼可以幫助你看到我想要做什麼,thnaks – Coffee

1

試試這個:

int asciiValue = 53; 
int numericValue = Character.getNumericValue(asciiValue); 

System.out.println(numericValue); 
+0

這種方法的好處是,它不僅適用於ASCII數字,還適用於精美的Unicode內容以及字母(「A」= 10,「B」= 11等)。如果這不是您想要的,請注意一些事情。 – Thilo

+0

@dev,它的工作原理,但如果最後一個數字是2位數字,它只能得到一位數! – Coffee

相關問題