这是我正在做的事情的链接,简单的练习:http:
//codingbat.com/prob/p162477
然而,它告诉我,当它使前面=假,
public String theEnd(String str, boolean front) {
String stringPart;
if (front = true) {
stringPart = str.substring(0, 1);
} else {
stringPart = str.substring(str.length()-1,str.length());
}
return stringPart;
}
Run Code Online (Sandbox Code Playgroud)
无论如何,它返回时都是真的.我不想学习坏习惯:(
EX:大象返回E,应该返回t.我稍后会再回来查看,我需要休息一下LOONNNNG.可能犯了愚蠢的错误
这就是问题:
if (front = true)
Run Code Online (Sandbox Code Playgroud)
你的意思是:
if (front == true)
Run Code Online (Sandbox Code Playgroud)
目前它正在分配 front一个新值true,然后评估该结果并发现它是真的 - 所以它总是需要第一个字符.
有三种方法可以解决这个问题.一个是如上所述,只是要更加小心.一个是使用:
if (true == front)
Run Code Online (Sandbox Code Playgroud)
这将防止您的错字,因为你不能分配到常量true.
但是,我宁愿完全摆脱文字:
if (front)
Run Code Online (Sandbox Code Playgroud)
但是,您也可以使用条件运算符使整个方法更简单:
public String theEnd(String str, boolean front) {
int start = front ? 0 : str.length() - 1;
return str.substring(start, start + 1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
235 次 |
| 最近记录: |