Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较java中2数组的每个值,对于每个相同的值+4和-1(如果不是)_Java - Fatal编程技术网

比较java中2数组的每个值,对于每个相同的值+4和-1(如果不是)

比较java中2数组的每个值,对于每个相同的值+4和-1(如果不是),java,Java,我们有2个数组,有一些元素。比较同一索引下的两个数组元素,如果相等,则为+4,如果不相等,则为-1 例如: array1=[a b a b], array2=[a a b b] explanation: array1[0]==array2[0] //+4 array1[1]!=array2[1] //-1 aarray1[2]==array2[2] //+4 aarray1[3]!=array2[3] //-1

我们有2个数组,有一些元素。比较同一索引下的两个数组元素,如果相等,则为+4,如果不相等,则为-1

例如:

array1=[a b a b], array2=[a a b b]

explanation: 
         array1[0]==array2[0] //+4
         array1[1]!=array2[1] //-1
         aarray1[2]==array2[2] //+4
         aarray1[3]!=array2[3] //-1
                        OUTPUT//6**
我的代码:

import java.util.Scanner;
class  Solution
{
public static int scoreExam(String[] correct, String[] student)
{
    int count=0;
    for (int i=0;i<correct.length ;i++ )
    {
        for (int j=0;j<student.length ;j++ )
        {
            if(i==j)
            {
                if(correct[i]==student[j])
                {
                    count=count+4;
                }
                else if(correct[i]!=student[j])
                {
                    count=count-1;
                }
            }
        }
    }
    return (count);
}

public static void main(String[] args) 
{
    Scanner sc=new Scanner(System.in);
    String[] array1String,array2String;
    String[] array2;
    int n=Integer.parseInt(sc.nextLine());
    array1String=sc.nextLine().split("//s+");
    array2String=sc.nextLine().split("//s+");

    array2=new String[array2String.length];
    for (int i=0;i<array2String.length ;i++ )
    {
        if (array2String[i].equals("blank"))
        {
            array2[i]="";
        }
        else
        {
            array2[i]=array2String[i];
        }

    }

    System.out.println(scoreExam(array1String, array2));
}
}

尽管这是一个关于比较字符串的重复问题,但我认为流也适合这种情况;您可以使用IntStream,如果答案匹配,则将每个元素映射为4,否则映射为-1,然后简单地返回总和:

IntStream.range(0, correct.length)
         .map(i -> correct[i].equals(student[i]) ? 4 : -1)
         .sum();

请单击并在您对任务和代码的解释中添加问题。您好!请注意,不需要使用else if。就用别的吧。如果第一个If的条件相等?为false,它们不相等。欢迎使用堆栈溢出!请环顾四周,仔细阅读,尤其是您没有说您所展示的代码有什么问题,例如,哪些代码没有按您预期的方式工作。我们猜测您没有得到正确的输出,但在提问时要清楚这一点很重要。也是有用的阅读。