【问题标题】:String cannot be converted to int error when trying to return尝试返回时无法将字符串转换为 int 错误
【发布时间】:2014-12-22 18:22:26
【问题描述】:

所以我试图为学校编写一个 java 程序。它必须将美国时间,例如下午 3 点转换为欧洲时间,在这种情况下为 15。所以这是我将 24 转换为 12AM 并将其返回到以前的打印方法的部分

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

但是当我尝试编译时出现错误:字符串无法转换为 int

知道如何解决这个问题吗?

【问题讨论】:

  • 您有两个没有意义的return 语句...另外,您的方法可能被声明为返回String,而在您的第一个return 中,您正试图返回@ 987654325@ 这是一个int...
  • 您应该发布该方法的整个代码。您到目前为止发布的内容没有任何意义。
  • 可能是您编写此代码的方法返回String。由于第一个 return 语句的类型为 int,因此您会收到此错误消息。

标签: java string int return


【解决方案1】:

对于一个你不能以相同的方法返回两次。当第一个返回被调用时,第二个将永远不会被执行。问题是您的方法返回 int 类型,而您试图返回 String。

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 之后)并说“嘿,你不能在这里返回一个字符串,我期待一个 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);
}

【讨论】:

  • 我还没有找到向您发送消息的方法,所以我就在这里问一下。我修复了之前的问题,但是现在当我尝试打印字符串时,我收到错误消息,即我尝试打印的变量尚未初始化。但我使用#String output = new String (timeDigit + suffix);# 创建了一个新字符串
  • 如果在方法中声明字符串输出,则只能从方法中访问它。这就是为什么您要返回输出并从返回的字符串中访问它的原因。或者您可以创建一个全局变量并使用它,但这不会那么干净。在您调用它的主要方法中,尝试类似上面的内容,我发布了更多代码。
【解决方案2】:

我不知道你到底想要什么,但这段代码返回“12AM”。

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

【讨论】:

    【解决方案3】:

    ...你知道这两个回报都不会触发吧?我敢打赌你的返回类型(函数名之前的东西)是一个 int,而你的第二个返回(永远不会被调用的那个)正试图返回一个字符串。 string 和 int 不兼容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-27
      • 2015-11-05
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 2011-09-15
      相关资源
      最近更新 更多