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循环来检查四边,但这有点多余。有谁能给我一个更好的主意吗?谢谢
# 1 楼答案
我们可以试一下,只需要得到[x][y]形式的坐标, 并检查x和y值是否存在于长度范围内。。。 缺少值会导致空行
[x][y]列表将是(0,2)、(1,1)、(2,3)、(3,0),并且必须在{0,3}范围内
我们检查x和y是否有可用的值
(0-3)
。如果缺少任何值,则对应的行或列没有x
因为它代表边界边,所以您可以检查范围
(x,y)
中的{0,length-1}
# 2 楼答案
如果我很了解你想做什么,你可以试试这个。 任何
String[][]
都包含随机字符串,每个字符串中必须至少包含x
现在需要检查
str[i] > isContainLatterX()
,如果存在X
,它将返回boolean
。 例如:现在,需要另一个方法返回后一个
X
的Index
出现的indexOfLatterX(String str)
只需在循环中调用这两个方法,并检查后一个X是否存在,如果不超过生成错误,则跳过剩余的进度。如果存在,则使用前面的字符串检查其索引,如果存在匹配的索引,则生成错误并跳过剩余的进度