【问题标题】:Returning a char from a method从方法返回一个字符
【发布时间】:2013-11-26 01:18:27
【问题描述】:

我不知道出了什么问题,但我无法让这个方法返回我想要的字符。我只是在'return'这个词下不断收到以红线形式出现的错误

这是我的方法。

public static char getOperator(String fileContent){


    int checkAdd = fileContent.indexOf('+');
    int checkMinus = fileContent.indexOf('-');
    int checkMulti = fileContent.indexOf('*');
    int checkDivi = fileContent.indexOf('/');

    if (checkAdd != -1){
        return char operator = fileContent.charAt(fileContent.indexOf('+')); 
    }   
    else if (checkMinus != -1) {
        return char operator = fileContent.charAt(fileContent.indexOf('-'));
    }
    else if (checkMulti != -1) {
        return char operator = fileContent.charAt(fileContent.indexOf('*'));
    }
    else if (checkDivi != -1){
        return char operator = fileContent.charAt(fileContent.indexOf('/'));
    }
    return 0;


    }

好的,很抱歉,我在 Eclipse 中一直在搞乱它,但没有发现这个问题。但是,现在 ifs 中的 return 语句仍然会产生错误。我该如何解决?

【问题讨论】:

  • 你的函数返回 void 'public static void getOperator()'
  • public static void getOperator(){}...而您期望它返回任何东西?
  • 更换退货。您当前返回的是一个数字而不是一个字符; return ' ';
  • 我仍然在 if 语句的返回中遇到错误
  • @CherryBomb95 看到我的回答。

标签: java eclipse methods char return


【解决方案1】:

基本上,方法签名...

public static void getOperator(){

声明该方法不返回任何内容。

相反,它应该被声明得更像...

public static char getOperator(){

【讨论】:

    【解决方案2】:

    试试这个

    public static char getOperator(String fileContent){
    
        int checkAdd = fileContent.indexOf('+');
        int checkMinus = fileContent.indexOf('-');
        int checkMulti = fileContent.indexOf('*');
        int checkDivi = fileContent.indexOf('/');
    
        if (checkAdd != -1){
            char operator = fileContent.charAt(checkAdd); 
            return operator;
        }   
        else if (checkMinus != -1) {
            char operator = fileContent.charAt(checkMinus);
            return operator;
        }
        else if (checkMulti != -1) {
            char operator = fileContent.charAt(checkMulti);
            return operator;
        }
        else if (checkDivi != -1){
            char operator = fileContent.charAt(checkDivi);
            return operator;
        }
    
        return ' ';
    }
    

    【讨论】:

      【解决方案3】:

      你的返回方法是void,而不是char,所以你不能返回一个值。

      【讨论】:

        猜你喜欢
        • 2021-01-14
        • 1970-01-01
        • 1970-01-01
        • 2016-05-15
        • 2012-07-04
        • 2013-03-31
        • 2020-04-18
        • 1970-01-01
        • 2016-05-19
        相关资源
        最近更新 更多