package f;
public class E {
public static void main(String[] args) {
String s2[]= {"1","2","3","4","5"};
String s[]=new String[7];
for (String s1:s) {
if (s1==null) {
if(s2.length<s.length) {
for (int i=0;i<s2.length;i++) {
s1=s2[i];
System.out.println(s1);
}
//return;
}else {
for (int i=0;i<s.length;i++) {
s1=s2[i];
System.out.println(s1);
}
return;
}
}
}
//System.out.println(s.length);
}
}
我要的是s1和s2[i]进行一对一替换,这么输出的都是长度的乘方,谁知道怎么弄,我想的是这两个循环是同级的,将第一个循环的值拿出到第二个循环中使用,这样就可以实现一对一替换了
首先 foreach循环便于获取元素 但是对元素值进行操作是比较麻烦的
对s1进行赋值是无法改变数组中的值
你在末尾对s数组进行输出就可以看到s数组中的值依然是null
对象和对象引用相关的知识你应该去了解一下
然后 两个并列循环的问题
两个循环所要做的操作其实是一样的 只是结束循环的条件不同
并且该条件不具备同时存在的可能 那你可以先将条件确定下来 再进行操作
例如
int len = s2.length < s.length ? s2.length : s.length;
for (int i = 0; i < len; i++) {
s1 = s2[i];
System.out.println(s1);
}
最后 如果只是将数组元素一对一替换
String s2[] = {"1", "2", "3", "4", "5"};
String s[] = new String[7];
int len = s2.length < s.length ? s2.length : s.length;
for (int i = 0; i < len; i++) {
s[i] = s2[i];
}
你这样只是实现单纯的替换,这个我开始也能做到,只是没你这么简单而已,我要的是如果指定s的长度为7,那么输出的结果必须是7个元素,而这7个元素都是s2数组中的元素,我要的结果是如果输出7个元素,那么元素应该分别为1 2 3 4 5 1 2...类似这样一直循环下去
是这个意思,为什么i%s2.length的结果就正好是数字的位置
追答因为你要的是能够一直循环把s2中的元素放进去,所以就用循环中的i对s2的长度求余数就行了,因为i为0时求余也为0,i为5时求余也为0,所以就能一直重复的把s2的元素放进去了
本回答被提问者采纳