2015-10-03 144 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>过,但是这可能会是一个有点过度杀伤你的目的。

有很多方法可以返回多个值。您需要更加具体地满足您的需求。

相关问题