当前位置: 首页 > 知识库问答 >
问题:

生成新字符串数组的输出不如预期

东方乐
2023-03-14

你已经输入了两个整数,n1和n2。返回一个新字符串[],其中包含从n1到n2的数字作为字符串,除了3的倍数,使用“Fizz”代替数字,对于5的倍数使用“Buzz”,对于3和5的倍数使用“FizzBuzz”

生成(2,8)

{“2”、“嘶嘶声”、“4”、“嗡嗡声”、“嘶嘶声”、“7”、“8”}

生成(10,16)

{“嗡嗡声”,“11”,“嘶嘶声”,“13”,“14”,“嘶嘶声”,16}

我的方法

我正在从n1到n2检查nos是否可以被3整除

public String[] generate(int start, int stop)
 {
   String strnew[]=new String[stop-start+1];
    
   {
    for(int i=start;i<=stop;i++)
     
    {
     
      if((i%3==0)&&(i%5==0))
      strnew[i]="FizzBuzz";
      else if(i%3==0)
      strnew[i]="Fizz";
      else if(i%5==0)
      strnew[i]="Buzz";
      else
      strnew[i]=""+i;
    } 

    return strnew;
  }
 
 }

我的问题:

我做错了什么?谁能给我指路。

输出

Parameters  Actual Output   Expected Output

'2' '8'     null            {'2','Fizz','4','Buzz','Fizz','7','8'}

共有2个答案

司空高义
2023-03-14
public String[] generate(int start, int stop){
    String ar[]=new String[stop-start+1];
    int num=start;
    String s1="Fizz";
    String s2="Buzz";
    String s3="FizzBuzz";
    for(int i=0;i<ar.length;i++){
        if((num%3==0)&&(num%5!=0)){
            ar[i]=s1;
        }
       else if((num%5==0)&&(num%3!=0)){
            ar[i]=s2;
        }
        else if((num%3==0)&&(num%5==0)){
            ar[i]=s3;
        }
        else{
            String str="";
            str=str+num;
            ar[i]=str;
        }
        num=num+1;
    }

    return ar;
}
刘奇
2023-03-14

您需要偏移您在存储数组中的位置(start不是0)。在strnew之后不需要一个块,我更喜欢在ifany if块上的大括号。有点像,

static String[] generate(int start, int stop) {
    String strnew[] = new String[stop - start + 1];
    for (int i = 0; i < strnew.length; i++) {
        int value = start + i;
        if (value % 15 == 0) {
            strnew[i] = "FizzBuzz";
        } else if (value % 3 == 0) {
            strnew[i] = "Fizz";
        } else if (value % 5 == 0) {
            strnew[i] = "Buzz";
        } else {
            strnew[i] = String.valueOf(value);
        }
    }
    return strnew;
}
 类似资料:
  • 我有一个一维数组字符串,其中可能包含最多5个已知项。我想以“我的数组中总共有item1、item2、item3、item4、item5”这样的格式将数组字符串中的每一个(不管有多少个)输出到表单上的标签上。以下是我的阵列的外观:

  • 我有这个字符串数组,我需要在“-”处拆分这些字符串,并用拆分的值创建一个新对象。字符串可以有多个“-”,但我希望总是在最后一个“-”拆分。 数组如下所示: 我希望达到的目标是: 到目前为止,我尝试了以下方法: null null 我可以制作对象,但是movie和actor都使用完整的字符串,而不是拆分的版本。 如果有人能帮我做这件事,将不胜感激。

  • 主要内容:字符串的输出,字符串的输入其实在《 C语言输入输出》一章中我们已经提到了如何输入输出字符串,但是那个时候我们还没有讲解字符串,大家理解的可能不透彻,所以本节我们有必要再深入和细化一下。 字符串的输出 在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是: puts():输出字符串并自动换行,该函数只能输出字符串。 printf():通过格式控制符输出字符串,不能自动换行。除了字符串,printf() 还能输

  • 问题内容: 我正在尝试使用Logstash将XML转换为ElasticSearch的JSON。我能够读取值并将其发送到ElasticSearch。问题是所有值都以数组形式出现。我想让它们像字符串一样出来。我知道我可以为每个字段分别执行操作,但是随后遇到了一个问题,嵌套字段的深度为3级。 XML格式 Logstash配置 示例输出 如您所见,输出是每个元素的数组(我替换为的locationId除外)

  • 问题内容: 首先,对英语不好对不起。 好吧,我想从torrent文件中读取散列信息。目前,我正在使用https://github.com/hyPiRion/java- bencode 这个bencode库来解码信息,但是我的问题是当我想将字符串转换为字节数组时。种子文件使用UTF-8编码。但是如果我这样做 很好。任何真正有用的东西。 另一方面,为了比较或尝试获取字符串,而不是获取字节,我已经阅读了

  • 《 C++ cout.put()》一节中,讲解了 ostream 类提供的 put() 成员方法的用法,其用于向输出流缓冲区中添加要输出的单个字符。而在某些场景中,我们还需要输出指定的字符串,这时可以使用 ostream 类提供的 write() 成员方法。 write() 成员方法专用于向输出流缓冲区中添加指定的字符串,初学者可以简单的理解为输出指定的字符串。其语法格式如下: ostream&w