2014-08-29 61 views
-1

我想爲我的掃描儀獲取下一個字符。.class?

我的構造函數是:

public S(InputStream inStream) 
    { 
     in = new BufferedReader(new InputStreamReader(inStream)); 
     e = false; // if input stream is done 
     getNextChar(); 
    } 

我的方法就是:

private void getNextChar() 
{ 
     int data = in.read(); 
     char temp = char (data); 
     currentChar = temp; 
} 

我得到一個'.class' expected error in "getNextChar()"

任何想法,爲什麼?

+1

'char temp = char(data);'你認爲那是什麼?爲什麼? – 2014-08-29 18:48:45

+0

我試圖將數據變量轉換爲char,因爲read()返回int – Surz 2014-08-29 18:49:50

+3

正如@SotiriosDelimanolis所暗示的,您正在嘗試執行轉換,但使用的語法不正確。 char temp =(char)數據。儘管其他代碼很有趣,但它應該解決這個特定的難題。 – TEK 2014-08-29 18:50:25

回答

0
private void getNextChar() throws IOException 
{ 
    int data = in.read(); 
    char temp = (char) data; 
    currentChar = temp; 
} 

鑄造應該像這樣完成:char temp =(char)data;

不是這樣的:char temp = char(data);

1

個人而言,我想知道爲什麼你有一個void get方法。然後,我看到兩個不必要的臨時和在鑄造一個令人擔憂的嘗試,

private void getNextChar() { 
    int data = in.read(); 
    char temp = char (data); 
    currentChar = temp; 
} 

假設你真的想還設置currentChar,你可以這樣做

private char getNextChar() { 
    return currentChar = (char) in.read(); // <-- chaining assignment 
} 

或者是(相當於鏈版本)

private char getNextChar() { 
    currentChar = (char) in.read(); 
    return currentChat; 
} 

或遠更典型的情況是將跳過currentChar乾脆,

private char getNextChar() { 
    return (char) in.read(); 
}