Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成新字符串数组的输出不为n';我没料到会来_Java_Arrays - Fatal编程技术网

Java 生成新字符串数组的输出不为n';我没料到会来

Java 生成新字符串数组的输出不为n';我没料到会来,java,arrays,Java,Arrays,您已经输入了两个整数,n1和n2。返回一个新字符串[],其中包含从n1到n2的数字作为字符串,除3的倍数外,使用“Fizz”代替数字,对于5的倍数使用“Buzz”,对于3和5的倍数使用“FizzBuzz” 样本输入#1 生成(2,8) 样本输出#1 {“2”、“嘶嘶声”、“4”、“嗡嗡声”、“嘶嘶声”、“7”、“8”} 样本输入#2 生成(10,16) 样本输出#2 {“嗡嗡”,“11”,“嘶嘶”,“13”,“14”,“嘶嘶”,16} MyApproach 我从n1到n2检查nos是否可以被3和

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

样本输入#1 生成(2,8)

样本输出#1 {“2”、“嘶嘶声”、“4”、“嗡嗡声”、“嘶嘶声”、“7”、“8”}

样本输入#2 生成(10,16)

样本输出#2 {“嗡嗡”,“11”,“嘶嘶”,“13”,“14”,“嘶嘶”,16}

MyApproach

我从n1到n2检查nos是否可以被3和5整除,3和5整除。如果可以被3整除,我将该字符串存储在strnew中,可以被5整除将该字符串存储在strnew中,否则将该字符串存储在strnew中

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

您需要偏移您在存储阵列中的位置(
start
不是
0
)。在
strnew
之后不需要块,我更喜欢
if
else 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;
}
静态字符串[]生成(int开始,int停止){
字符串strnew[]=新字符串[停止-启动+1];
对于(int i=0;i
公共字符串[]生成(int开始,int停止){
字符串ar[]=新字符串[停止-开始+1];
int num=开始;
字符串s1=“嘶嘶”;
字符串s2=“嗡嗡”;
字符串s3=“FizzBuzz”;

对于(int i=0;i这里是堆栈traceAlso,stop和start可能为null…首先,数组的第一个单元格是[0],而不是[start]。另一方面,从技术上讲,2和8被称为参数。参数没有实际值。Frisch您的代码很棒。+1。但这又让人怀疑为什么我需要处理所有索引为0的数组。数组在Java中是固定长度的,并且是第一个索引(在数组中)是
0
。为什么第一个索引是0?为什么我不能从1,2,3开始…等等说(部分)所有数组都是
0
-源。长度为
n
的数组可以通过
0
n-1
的整数进行索引。欢迎使用堆栈溢出!虽然此代码片段可以解决问题,但确实有助于提高文章质量。请记住,您是在回答将来读者的问题,以及那些人们可能不知道您的代码建议的原因。
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;
}
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;
}