Java 生成新字符串数组的输出不为n';我没料到会来
您已经输入了两个整数,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中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和
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;
}