有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何确定字符串矩形的每个边框边是否至少包含一个指定字符?

假设有一个字符串代表一个矩形,这个矩形只包含两种类型的字符,它们是“.”和“x”:

String layout = "..x.\nx..x\n.x.."
System.out.println(layout) ->     ..x.
                                  x..x
                                  .xx.

如何确定矩形的每个边框边是否至少有一个“x”?(使用布尔方法)例如

//this one is not illegal, because its left side border does not have an 'x' 
 ..x.
 ..xx
 .xx. 

我把这个矩形放在一个字符串[]中,这意味着这个矩形中的每个字符都有一个坐标。我的想法是使用四个for循环来检查四边,但这有点多余。有谁能给我一个更好的主意吗?谢谢


共 (2) 个答案

  1. # 1 楼答案

    我们可以试一下,只需要得到[x][y]形式的坐标, 并检查x和y值是否存在于长度范围内。。。 缺少值会导致空行

     ..x.
     .x..
     ...x
     x...
    

    [x][y]列表将是(0,2)、(1,1)、(2,3)、(3,0),并且必须在{0,3}范围内

    我们检查x和y是否有可用的值(0-3)。如果缺少任何值,则对应的行或列没有x

    因为它代表边界边,所以您可以检查范围(x,y)中的{0,length-1}

  2. # 2 楼答案

    如果我很了解你想做什么,你可以试试这个。 任何String[][]都包含随机字符串,每个字符串中必须至少包含x

     str[0] X . . .
     str[1] . X . .
     str[2] . . X .
     str[3] . . . X
    

    现在需要检查str[i] > isContainLatterX(),如果存在X,它将返回boolean。 例如:

    public boolean isContainLatterX(String str){
        if(str.contains("X"))
              return true;
        else
              return false;
    }
    

    现在,需要另一个方法返回后一个XIndex出现的indexOfLatterX(String str)

    public int indexOfLatterX(String str){
        return str.indexOf("X");
    }
    

    只需在循环中调用这两个方法,并检查后一个X是否存在,如果不超过生成错误,则跳过剩余的进度。如果存在,则使用前面的字符串检查其索引,如果存在匹配的索引,则生成错误并跳过剩余的进度