假设有一个字符串表示一个矩形,这个矩形只包含两种类型的字符'。'和' 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循环来检查四个边,但它有点多余。谁能给出更好的主意?感谢
答案 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}