0

我需要一个函数接受两个参数,int start 和 int end。我需要两个整数来给出一个整数系列。例如,开始 = 1,结束 = 10。它将返回 1,2,3,4,5,6,7,8,9。我需要该函数返回一个包含这些数字的字符串形式的字符串数组,除了 3 的倍数,使用“FirstName”而不是数字,对于 5 的倍数使用“LastName”,对于 3 和 5 的倍数使用“全名”。

public class StringHandler() {
    public static void function(int start, int end) {
        int size = end - start;

        System.out.println("Name - ");
        for(int i = 1; i <= size; i++) {
            if (i % 3 == 0 && i % 5 == 0) {
                System.out.print("FullName" + " ");
            } else if (i % 3 == 0) {
                System.out.print("FirstName" + " ");
            } else if (i % 5 == 0) {
                System.out.print("LastName" + " ");
            } else {
                System.out.print(Integer.toString(i) + " ");
            }
         }
     }

     public static void main(String[] args) {
         function(1, 30);
     }
}

现在只是有一个硬编码块,无法弄清楚我做错了什么。

4

2 回答 2

1

你的 for 循环应该是这样的:

for(int i = start; i < end; i++)

基于:

例如,开始 = 1,结束 = 10。它将返回 1,2,3,4,5,6,7,8,9。


编辑:

完整的源代码是这样的:

public static String[] function(int start, int end)
{
    int size = end - start;
    String[] array = new String[size];
    int counter = 0;

    for(int i = start; i < end; i++)
    {
        if(i % 3 == 0 && i % 5 == 0) array[counter] = "FullName";
        else if(i % 3 == 0) array[counter] = "FirstName";
        else if(i % 5 == 0) array[counter] = "LastName";
        else array[counter] = Integer.toString(i);

        if(i < end - 1) array[counter] += " ";
        counter++;
    }

    return array;
}
于 2013-05-24T12:29:17.760 回答
1

这应该可以解决问题:

public static String[] function(int start, int end) {
    int size = end - start;

    String[] result = new String[size];

    System.out.println("Name - ");
    for(int i = start; i <= end; i++) {
        if (i % 3 == 0 && i % 5 == 0) {
            result[i-start] = "FullName ";
        } else if (i % 3 == 0) {
            result[i-start] = "FirstName ";
        } else if (i % 5 == 0) {
            result[i-start] = "LastName ";
        } else {
            result[i-start] = Integer.toString(i) + " ";
        }
     }

    System.out.println(Arrays.toString(result));

    return result;
 }

 public static void main(String[] args) {
     function(1, 30);
 }

println 不是必需的,只是为了让您可以在控制台中看到它。请注意,返回类型不再是voidbut now String[],因此您可以执行以下操作:

String[] stringArray = function(1,30);

当您调用function以获取结果数组时。

于 2013-05-24T12:38:53.743 回答