2014-10-27 130 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; }

相关问题