我正在尝试从用户输入arrayList确定赢家。 有人可以解释我的代码有什么问题吗? 显示一个更简单的方法来做到这一点?
public class Score {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
//Attributes
private long gameid;
String sportstype;
String winner;
String player1name;
String player2name;
String[] player1score;
String[] player2score;
String finalscore;
//Function to determine winner
String getWinningScore() {
//Lambda Expressions to convert String array to Int array
int[] scoreArray1 = Arrays.stream(player1score).mapToInt(Integer::parseInt).toArray();
int[] scoreArray2 = Arrays.stream(player2score).mapToInt(Integer::parseInt).toArray();
int sumOfscore1 = 0;
int sumOfscore2 = 0;
for( int num : scoreArray1) {
sumOfscore1 = sumOfscore1+num;
}
for( int num : scoreArray2) {
sumOfscore2 = sumOfscore2+num;
}
if(sumOfscore1 > sumOfscore2) {
return player1name;
} else if(sumOfscore2 > sumOfscore1) {
return player2name;
}
return winner;
}
if语句中的错误消息:
未为参数类型java.lang.String [],java.lang.String []
定义运算符>
PS。我首先需要字符串数组,以便稍后在代码上供用户输入。
答案 0 :(得分:2)
您的实际代码无法给出此错误,因为您正在比较整数,重新编译代码并再次运行
获取无循环求和的提示-将Stream
与Java8结合使用:
int sumOfscore1 = Arrays.stream(player1score).mapToInt(Integer::parseInt).sum()
答案 1 :(得分:-1)
继续使用流。您可以使用Java Streams的reduce方法来获取两个成绩数组的总成绩。