有人可以帮我一个for循环java代码

时间:2013-10-08 09:44:34

标签: java for-loop while-loop bluej

有人可以帮助我在此处说明我的代码对此说明有什么问题: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;
    }

5 个答案:

答案 0 :(得分: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));
}

答案 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;
}