2013-11-26 302 views
1

我不知道什麼是錯的,但是我不能讓這個方法返回我想要的字符。在「返回」一詞下,我只是不斷收到紅線形式的錯誤。從方法中返回一個字符

這是我的方法。

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; 


    } 

好的,對不起,我一直在蝕它在日食,並沒有抓住這個問題。但是,現在ifs中的返回語句仍然會產生錯誤。我如何解決這個問題?

+0

你的函數返回void '公共靜態無效getOperator()' – Scony

+0

公共靜態無效getOperator(){} ...你期待它返回什麼? – JoeC

+0

代替退貨。您目前正在返回一個不是字符的數字; '返回'';' –

回答

1

嘗試了這一點

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 ' '; 
} 
+0

這工作!很棒,謝謝。 – CherryBomb95

2

基本上,方法的簽名...

public static void getOperator(){ 

指出,該方法不返回任何東西。

相反,它應該被宣佈更像......

public static char getOperator(){ 
0

你回報的方法是無效的,不燒焦,所以你不能返回一個值。