有人可以帮助我在此处说明我的代码对此说明有什么问题:http://prntscr.com/1w02ns 我不确定什么是错的。我的blueJ项目中的大多数测试都在通过,但有些不是。
我的代码到目前为止:
String prefix (String n, int num)
{
int count = 0 ;
for(int i = 0; i <n.length(); i++)
{
if(n.charAt(i) == num)
{
++count;
}
}
return n;
}
答案 0 :(得分:3)
你为什么要使用循环?你的作业只是声明你需要接受一个字符串和一个数字。
你可以这样做:
public String prefix(String text, int characters) {
return text.substring(0, characters);
}
编辑: 它为什么失败了,它是如何确定的?我们可能需要了解哪些要求/规则? 以下JUnit测试工作正常:
@Test
public void testPrefix() {
Assert.assertEquals("hel", prefix("hello", 3));
}
答案 1 :(得分:1)
你可以简单地使用java-string API中提供的substring函数。这个子字符串的两个版本可以使用第二个。 以下是链接
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html
http://www.tutorialspoint.com/java/java_string_substring.htm
答案 2 :(得分:0)
为什么要循环人? 使用子串na ??
public class Prefix {
public static void main(String args[]){
String r = prefix("Why loop? use substring. Well unless your homework says use loop" , 4);
System.out.println(r);
}
private static String prefix(String string, int i) {
// TODO Auto-generated method stub
return string.substring(0,i);
}
}
答案 3 :(得分:0)
您可以简单地使用:
static String prefix(String n, int num) throws Exception {
if (n != null && n.length() < num)
throw new Exception();
return n.substring(0, num);
}
答案 4 :(得分:0)
在您的情况下,不使用变量count
。
如果你真的想使用一个循环,而不是一个子字符串,你可以尝试类似:
String prefix(String str, int n) {
String result = "";
for (int i = 0; i < n; i++) {
result += str.toCharArray()[i];
}
return result;
}