繁体   English   中英

Java:在2D数组中搜索多个值

[英]Java: Searching through 2D array for multiple values

好的,我创建了一个可以同时包含S和M两种类型的飞船的板,但是,只要板仅包含S但不包含M或仅包含M但不包含S或同时存在两者,我希望Java向我显示不同的消息。 我不能那样做。 请帮忙。 这是我到目前为止尝试过的

import java.util.ArrayList;
import java.util.Scanner;


public class bord {
    public static void main(String[] args) {
        String Board[][]= new String[4][4];
        int n=0;
        for(int i=0;i<4;i++)
        {
            for(int j=0;j<4;j++)
            {
                Board[i][j]="-";

            }
        }
        for(int i=0;i<4;i++)
        {
            for(int j=0;j<4;j++)
            {
                System.out.print(Board[i][j]);
            }
            System.out.println();
        }
        System.out.println("_______________");

             //from here!
        Board[1][1]="S";
        Board[3][2]="M";

        int a=0;
        for(int i=0;i<4;i++)
        {
            for(int j=0;j<4;j++)
            {
                if(Board[i][j].equalsIgnoreCase("S") && !Board[i][j].equalsIgnoreCase("M"))
                {

                    a=1;

                }
                else if(Board[i][j].equalsIgnoreCase("M") &&  !Board[i][j].equalsIgnoreCase("S"))
                    {
                        a=2;

                    }
                else if(Board[i][j].equalsIgnoreCase("S") || Board[i][j].equalsIgnoreCase("M") )
                        a=3;

            }

        }
        if(a==0)
        {
            System.out.println("No ship found");
        }
        else if(a==1)
            System.out.println("Found it");

    else if(a==2)
        {
        System.out.println("Found it yet again");
        }
    else
        System.out.println("keep playing again");
    }
}

也许您可以尝试以下方法:

    boolean foundS= false;
    boolean foundM = false;
    for (int i = 0;i < 4;i ++) {
        for (int j = 0;j < 4;j ++) {
            if (Board[i][j].equalsIgnoreCase("S")) {
                foundS = true;
                continue;
            }
            if (Board[i][j].equalsIgnoreCase("M")) {
                foundM = true;
                continue;
            }
        }
    }
    if (foundS && foundM) {
        System.out.println("both");
    } else if (foundS) {
        System.out.println("found S");
    } else if (foundM) {
        System.out.println("found M");
    } else {
        System.out.println("none");
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM