❶ java String 数组比较
public static void main(String[] args) {
String[] a = { "1", "2", "3", "4" };
String[] b = { "1", "3", "5" };
int index = a.length;
int t = 0;
int in = 0;
String[] an = new String[a.length + b.length];
for (int i = 0; i < a.length; i++) {
an[i] = a[i];
}
for (int j = 0; j < b.length; j++) {
if (!has(an, b[j])) {
an[index] = b[j];
index++;
}
}
String[] temp = new String[a.length + b.length];
for(int m=0;m<an.length;m++){
if(an[m]!=null){
temp[t] = an[m];
t++;
}
}
for(int m=0;m<temp.length;m++){
if(temp[m]!=null)
in++;
}
String[] result = new String[in];
for(int n=0;n<in;n++){
result[n] = temp[n];
}
for(int m=0;m<in;m++){
System.out.println(result[m]);
}
}
public static boolean has(String[] a, String b) {
for (int k = 0; k < a.length; k++) {
if (b.equals(a[k])) {
a[k] = null;
return true;
}
}
return false;
}
❷ 求教关于javaString数组输入的问题
首先 str = new String[4]; 改成 str = new String[5];方括号里的是长度而不是下标
错误提示里:Exception in thread "main" java.lang.: 4 是指数组越界后面的4代表长度4,不可以放进5个字符。
第二,对于数组用for循环会更方便一些,第二个while循环里不能还用i ,太粗心了用i的话j定义干什么用,这是i=0 必然只能读到一个字符。
最后说一下,做这个问题可以换一下方法或者加大一些难度,比如说输入一句话“java”返回一句“avaj”而不是一个个输入,多注意一下数组越界和循环问题,建议一般不要用++i --i 最好用i++ i-- ,不知道你做到别的题的时候会不会混,符号在后用的比较多