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

时间:2015-04-22 04:44:20

标签: 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 个答案:

答案 0 :(得分:1)

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

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

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

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

现在,需要另一个方法返回Index后发X的{​​{1}}说indexOfLatterX(String str)

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

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

答案 1 :(得分:0)

我们可以尝试,只是以[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}