❶ 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-- ,不知道你做到別的題的時候會不會混,符號在後用的比較多