-1

任何人都可以在这里帮助我确定我的代码对这个指令有什么问题: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;
    }
4

5 回答 5

3

你为什么使用循环?您的作业只是说明您需要接受一个字符串和一个数字。

你可以这样做:

public String prefix(String text, int characters) {
 return text.substring(0, characters);
}

参考:toString javadoc

编辑:为什么会失败,它是如何确定的?是否有任何我们可能需要了解的要求/规则?以下 JUnit 测试工作正常:

@Test
public void testPrefix() {
    Assert.assertEquals("hel", prefix("hello", 3));
}
于 2013-10-08T09:48:43.613 回答
1

您可以简单地使用 java-string API 中提供的子字符串函数。这个子字符串有两个版本,您可以使用第二个版本。下面是链接

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html

http://www.tutorialspoint.com/java/java_string_substring.htm

于 2013-10-08T09:58:56.777 回答
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);

    }

}
于 2013-10-08T09:52:01.830 回答
0

您可以简单地使用:

static String prefix(String n, int num) throws Exception {
    if (n != null && n.length() < num)
        throw new Exception();

    return n.substring(0, num);

}
于 2013-10-08T09:53:20.110 回答
0

count在您的情况下,未使用变量。

如果您真的想使用循环,而不是子字符串,您可以尝试以下操作:

String prefix(String str, int n) {
        String result = "";
        for (int i = 0; i < n; i++) {
            result += str.toCharArray()[i];
        }
        return result;
}
于 2013-10-08T09:58:29.440 回答