2017-03-16 27 views
0

我正在用Java編寫解釋器,並且在類型/類型轉換時遇到了一些問題。我擁有的是包含以下內容的Stack類型的Object。如何從對象中刪除引號,Java

1 
error 
"deadpool" 
name 

如果解釋器看到輸入「quit」,它將打印堆棧。我在下面的代碼中做了什麼。

else if(strLine.equals("quit")){ 
     while(!stack.isEmpty()){ 
     pw.println(stack.pop()); 
    } 
} // quit 

但是,當我打印輸出時,我想從死區中刪除引號。我想過把對象轉換爲字符串,然後嘗試子串,但我沒有多少運氣。有一個更好的方法嗎?我對如何保持彈出和打印項目有點困惑,同時檢查Object包含引號,我想刪除它。

在代碼中,strLine是來自用戶的輸入行,stack是Object類型的堆棧,而pw是打印到文件的PrintWriter。

回答

0

做這個

else if(strLine.equals("quit")){ 
     while(!stack.isEmpty()){ 
     pw.println(getObject(stack.pop())); 
    } 
} // quit 


private Object getObject(Object obj) { 
     String objStr = null; 
     if(obj instanceof String){ 
      String objStr = (String)obj; 
      } 
    Object resp = (objStr == null)? obj: objStr.replaceAll("\"",""); 
    return resp; 
}