睡觉前~新手帖

睡觉前求助~~新手帖
package demo1;

import java.util.Arrays;
import java.util.Scanner;

public class DoubleBall {
public static void main(String[] args) {
int[] rest=new int[2];
String[] result = rdArray();
System.out.println(Arrays.toString(result));
String[] guessArray =print();
System.out.print("今天的双色球号码为:" + "[");
for (int i = 0; i < result.length - 1; i++) {
System.out.print(result[i] + " ");
}
System.out.println("| " + result[result.length - 1] + "]");
rest =check(result,guessArray);
System.out.println(Arrays.toString(rest));
System.out.println("你猜对的红球个数为:"+rest[0]+",蓝球个数为:"+rest[1]);
}

public static String[] rdArray() {
String[] red = { "01", "02", "03", "04", "05", "06", "07", "08", "09",
"10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
"20", "21", "22", "23", "24", "25", "26", "27", "28", "29",
"30", "31", "32", "33" };
String[] blue = { "01", "02", "03", "04", "05", "06", "07", "08", "09",
"10", "11", "12", "13", "14", "15", "16" };
String[] result = new String[6];
int index;
boolean[] flag = new boolean[red.length];
for (int i = 0; i < result.length; i++) {
do {
index = (int) (Math.random() * 33);
} while (flag[index]);
result[i] = red[index];
flag[index] = true;
}
Arrays.sort(result);
result = (String[]) Arrays.copyOf(result, 7);
index = (int) (Math.random() * 16);
result[6] = blue[index];
return result;
}
public static String[] print(){
Scanner sc = new Scanner(System.in);
String[] guessArray = new String[7];
System.out.println("请输入红球号码[01-33]:");
for (int i = 0; i < guessArray.length - 1; i++) {
guessArray[i] = sc.next();
}
System.out.println("请输入蓝球号码[01-16]:");
guessArray[guessArray.length - 1] = sc.next();
System.out.print("你猜测的双色球号码:" + "[");
for (int i = 0; i < guessArray.length - 1; i++) {
System.out.print(guessArray[i] + " ");
}
System.out.println("| " + guessArray[guessArray.length - 1] + "]");
return guessArray;
}
public static int[] check(String[] a,String[] b){
int[] rest=new int[2];
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < b.length-1; j++) {
if(a[i]==b[j]){
rest[0]++;
}
}
}
if(a[a.length-1]==b[b.length-1]){
rest[1]++;
}
return rest;
}
}

输出不了最后的rest返回值睡觉前~新手帖
------解决方案--------------------
问题出在“a[i]==b[j]“和”a[a.length-1]==b[b.length-1]“这两句上
”==“比的是引用,也就是这两个引用变量是否指向同一个地址,显然不对
你这里应该要用String的equals方法
------解决方案--------------------
引用:
问题出在“a[i]==b[j]“和”a[a.length-1]==b[b.length-1]“这两句上
”==“比的是引用,也就是这两个引用变量是否指向同一个地址,显然不对
你这里应该要用String的equals方法


再去看看引用传递和值传递的区别以及常见使用上的区别
------解决方案--------------------
嗯  注意字符串的比较方法。。。。