2015-10-03 142 views
0

我的方法的目的是一次完成許多事情。 這是我的代碼到目前爲止:我想讓我的方法返回多個字符

public static String isCode(String code) { 
    code= "GUG"; 

    if (otherMethod(code.charAt(0)) && otherMethod(code.charAt(1)) && otherMethod(code.charAt(2))) 

return;

} 
} 

我怎麼那麼讓我isCode方法通過其他先前作出方法返回我的字符作爲別的東西。例如,如果我有一種方法將一個字符轉換爲另一個字符,我該如何編寫一個能夠實現這一點的代碼。我試着寫myOtherMethod(code.charAt(0),但我怎麼做不止一次返回所有我要找的三個值?

+2

*「我的方法的目的是一次做很多事情。」*然後這個代碼有問題。一個方法只應該做一件事,只能做一件事。 – Tom

+0

可能的重複[如何從Java方法返回多個對象?](http://stackoverflow.com/questions/457629/how-to-return-multiple-objects-from-a-java-method) – blm

+1

您的問題目前尚不清楚。定義「返回多個值」。同時更新你的例子,因爲「例如,如果我有一個方法轉換一個字符到另一個」是非常廣泛的。 – Pshemo

回答

0

我同意湯姆,如果你有你的方法做太多的東西,你應該重新考慮你的代碼。但是,如果我正確地閱讀你的解釋,我認爲你可能對這個問題措辭不佳。看起來你不想做很多事情 - 你想多次做一件事。這似乎是最簡單的方式做這將是做這樣的事情:

... else { 
    char[] bases = dna.toCharArray(); 
    char[] newBases = new char[bases.length]; 
    for (int i = 0; i < bases.length; i++) { 
     newBases[i] = myOtherMethod(bases[i]); 
    } 
    return new String(newBases); 
} 

這將使用myOtherMethod在DNA每一個字符,將它們放置到新的陣列中各自的位置,然後創建一個字符串退出數組返回。

更具體的方式做到這一點是這樣的:

... else { 
    return new String(new char[]{myOtherMethod(firstcharacter), 
     myOtherMethod(secondCharacter), myOtherMethod(thirdCharacter)}); 
} 
+0

有沒有辦法做到這一點,而不使用循環?說如果我想寫我的返回爲(myOtherMethod(dna.charAt(0))如何將其轉換爲字符串? –

+0

這將只是'返回新字符串(new char [] newBases = {myOtherMethod(firstCharacter), myOtherMethod(secondCharacter),myOtherMethod(thirdCharacter)});'在那個筆記上,爲什麼你繼續使用'dna.charAt(#)'?你已經將這些字符分配給了第一個/第二個/第三個字符變量 – BHustus

+0

我做了你建議並在新的字符[] 3,但它給了我8錯誤: 錯誤:')'預計 錯誤:非法開始表達式 錯誤:';'預計x 4 錯誤:非法啓動類型 錯誤:類,接口或枚舉預計 –

0

這真的取決於你。

一種方法是返回String,因爲它幾乎是一個字符集合。如果你有一個String對象,你可以只連接一個性格像

String result = ""; 
if (isValidBase(dna.charAt(0)) { 
    result += dna.charAt(0); 
}else{ 
    return ""; 
} 
if (isValidBase(dna.charAt(1)) { 
    result += dna.charAt(1); 
}else{ 
    return ""; 
} 
// etc 
return result; 

你也可以只返回一個char[],這是char數組。如果你知道的大小(3),那麼你就使它像

char[] result = new char[3]; 

然後填入值和最終

return result; 

你可以使用一個ArrayList<char>過,但是這可能會是一個有點過度殺傷你的目的。

有很多方法可以返回多個值。您需要更加具體地滿足您的需求。

相關問題