2014-10-27 135 views
-3

所以即時嘗試編寫一個學校的java程序。它必須將美國時間,例如3PM轉換爲歐洲時間,在這種情況下爲15。因此,這是我變換分析24到中午12點,並返回到以前的方法打印嘗試返回時,字符串不能轉換爲int錯誤

if (timeDigit == 0){ 
     timeDigit = 12; 
     String suffix = "AM"; 
     return timeDigit; 
     return suffix; 

但是,當我嘗試編譯,然後我得到錯誤的部分:字符串不能轉換成int

任何想法如何解決這個問題?

+0

你有兩個'return'報表時沒有任何意義......還有,你的方法可能被聲明爲返回一個'String'和你的第一個'return'你試圖返回' timeDigit'這是一個'int'... – nem035 2014-10-27 14:32:54

+0

你應該發佈該方法的整個代碼。你迄今發佈的內容沒有任何意義。 – ortis 2014-10-27 14:32:57

+0

也許你寫這段代碼的方法返回'String'。由於第一個'return'語句的類型爲'int',因此您會收到此錯誤消息。 – Maroun 2014-10-27 14:33:52

回答

0

對於一個你不能在相同的方法返回兩次。當第一個返回被調用時,第二個返回將永遠不會被執行。問題是你的方法返回類型int,你試圖返回一個字符串。

public int converTime() // if you notice it has int in the method that means it is expecting an int not a string 
    return int; 

編譯器看見你正試圖返回一個字符串(返回整型後),並說:「嘿,你不能返回一個字符串,在這裏,我期待一個int」。

也許你應該改變你的方法,以返回字符串,並在一個聲明中像同時返回:

public String convertTime() 
{ 
    String timeDigit = "12"; 
    String suffix = "AM"; 
    String output = null; 
    output = timeDigit + suffix; 
    return output; 
} 

public void main(String args[]) 
{ 
    String output = convertTime(); 
    System.out.println(output); 
} 
+0

啊我看到了,像平常一樣愚蠢的錯誤:) – 2014-10-27 14:53:42

+0

哈哈這是我們如何學習的好人。 – brso05 2014-10-27 15:02:58

+0

我還沒有找到一種方式向你發送消息,所以我只是問這裏。我解決了以前的問題,但現在當我嘗試打印一個字符串,我得到的錯誤,變量im試圖打印尚未初始化。 但是我使用#String output = new String(timeDigit + suffix)創建了一個新字符串;# – 2014-10-27 15:16:22

0

...你知道這兩個回報將不火嗎?我敢打賭,你的返回類型(函數名稱之前的東西)是一個int類型,而你的第二個返回類型(永遠不會被調用的那個)試圖返回一個字符串。字符串和int不兼容。

0

我不知道你到底想要什麼,但是這段代碼返回「12AM」。

public String returnTime(int timeDigit) { String suffix = "AM"; if (timeDigit == 0){ timeDigit = 12; } return String.valueOf(timeDigit)+suffix; }

相關問題