package code;
public class WriteUp{
public boolean containsNoDigits(String s){
s = s.toLowerCase();
char[] n = {'0', '1', '2', ....., '9'} //i wrote out 0-9
for (int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if (c == n[i]);
return false; //if string contain digit
}
return true; //if string contain NO digit
}
}
我想写一个方法(使用数组)来检查我的字符串是否包含数字。数字 => 假;没有数字 => 真;
我的代码未能通过 JUnit 测试
JUnit 测试:
@Test
public void test(){
code.WriteUp wu = new code.WriteUp();
boolean expected = true;
boolean actual = wu.containsNoDigits("there is no digit")
assertTrue("", expected ==actual);
}
@Test
public void test01(){
code.WriteUp wu = new code.WriteUp();
boolean expected = false;
boolean actual = wu.containsNoDigits("there are digit, 0342432")
assertTrue("", expected ==actual);
}
如何修改代码使其正常工作
最佳答案
分号终止 block ,删除它
if (c == n[i]); // <-- here
return false;
实际上是
if (c == n[i]); // <-- here
return false;
你需要类似的东西(最好有大括号)
if (c == n[i]) {
return false;
}
或
if (c == n[i])
return false;
此外,正则表达式会更有效率。喜欢
public boolean containsNoDigits(String s){
return !s.matches("\\d"); // <-- digit pattern
}
关于java - 如果代码中没有数字,将返回 true 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28952558/